Xamarin.Forms 殼層簡介

Download Sample 下載範例

Xamarin.Forms Shell 藉由提供大部分行動應用程式所需的基本功能,包括:

  • 說明應用程式視覺階層的單一位置。
  • 常見的瀏覽使用者體驗。
  • 允許導覽至應用程式中任何頁面的 URI 式導覽配置。
  • 整合式搜尋處理常式。

此外,Shell 應用程式的優點是轉譯速度更快,且記憶體使用量更少。

重要

現有的應用程式可採用 Shell,立即受益於導覽、效能與擴充性等改進功能。

應用程式視覺階層

Xamarin.Forms在 Shell 應用程式中,應用程式的視覺階層會在類別Shell化類別中描述。 這個類別可以包含三個主要階層式物件:

  1. FlyoutItemTabBarFlyoutItem代表飛出視窗中的一或多個專案,而且應該在應用程式需要飛出視窗的流覽模式時使用。 TabBar代表底部索引標籤,而且應該在應用程式的導覽模式以底部索引標籤開始,且不需要飛出視窗時使用。
  2. Tab 代表分組內容,可透過底部索引標籤導覽。
  3. ShellContent,表示 ContentPage 每個索引標籤的物件。

這些物件不代表任何使用者介面,而是應用程式視覺階層的組織。 殼層會採用這些物件,並產生內容的瀏覽使用者介面。

注意

頁面會在 Shell 應用程式中視需要建立,以響應流覽。

如需詳細資訊,請參閱 建立 Xamarin.Forms 殼層應用程式

Shell 提供的 Xamarin.Forms 瀏覽體驗是以飛出視窗和索引標籤為基礎。 Shell 應用程式中的最上層導覽是飛出視窗或底部索引標籤列,具體取決於應用程式的導覽要求。 下列範例示範最上層導覽為飛出視窗的應用程式:

Screenshot of a Shell flyout, on iOS and Android

在此範例中,某些飛出視窗專案會複製為索引標籤專案。 不過,也有專案只能從飛出視窗存取。 選取飛出視窗項目會產生代表要選取並顯示之項目的底部索引標籤:

Screenshot of Shell bottom tabs, on iOS and Android

注意

未開啟飛出視窗時,底部的索引標籤列可視為應用程式中導覽的最上層。

索引標籤的每個索引標籤都會顯示 ContentPage。 不過,如果底部索引標籤包含多個頁面,則可透過頂端索引標籤列導覽頁面:

Screenshot of Shell top tabs, on iOS and Android

在每個索引標籤內,可以巡覽至稱為詳細數據頁面的其他 ContentPage 物件:

Screenshot of Shell page navigation, on iOS and Android

Shell 使用 URI 型瀏覽體驗,使用路由巡覽至應用程式中的任何頁面,而不需要遵循設定的瀏覽階層。 此外,這也可讓您回溯導覽,而不需要造訪導覽堆疊上的所有頁面。 如需詳細資訊,請參閱 Xamarin.Forms 殼層導覽

Xamarin.Forms Shell 包含 類別所提供的 SearchHandler 整合式搜尋功能。 搜尋功能可以藉由將子類別化 SearchHandler 物件新增至頁面。 這會導致在頁面頂端新增搜尋方塊。 當數據輸入至搜尋方塊時,搜尋建議區域會填入數據:

Screenshot of Shell search, on iOS and Android

然後,從搜尋建議區域選取結果時,可以執行自定義邏輯,例如流覽至詳細數據頁面。

如需詳細資訊,請參閱 Xamarin.Forms 殼層搜尋

平台支援

Xamarin.Forms殼層在 iOS 和 Android 上完全可用,但只能在 通用 Windows 平台 (UWP) 上部分使用。 此外,Shell 目前在 UWP 上為實驗性,而且只能透過在呼叫 Forms.Init 之前將下列程式碼行新增至 UWP 專案中的 App 類別來使用:

global::Xamarin.Forms.Forms.SetFlags("Shell_UWP_Experimental");

如需 UWP 上 Shell 狀態的詳細資訊,請參閱 Xamarin.Forms github.com 上的 Shell 項目面板