第二十五章:頁面變化(一)

如果您將Xamarin.Forms應用程序視爲建築物,那麼您可以使用視圖和元素形式的磚塊構建此建築物。 您可以使用佈局類將它們排列到牆中,然後使用ContentPage將它們組織到房間中,通過圍繞NavigationPage構建的導航功能,可以實現從一個房間到另一個房間的通道。
使用派生自Page的其他可實例化類可以增強這種可視化架構。 這是完整的層次結構:

Page
    TemplatedPage
        ContentPage
    NavigationPage
    MasterDetailPage
    MultiPage<T>
        TabbedPage
        CarouselPage

本章專門介紹這些額外的頁面衍生詞,它們的相似之處在於它們作爲父項來管理兩個或多個其他頁面的可視化表示:

  • MasterDetailPage管理兩個頁面:master通常是數據集合或項目列表,詳細信息通常顯示集合中的特定項目。
  • TabbedPage由選項卡標識的多個子頁面組成。您可以使用一組離散頁面填充TabbedPage,或者基於數據集合自動生成選項卡和頁面,其方式與ListView基於數據集合生成項目的方式非常相似。使用第二個選項,每個選項卡都與集合的成員相關聯,使用模板格式化,但此選項不適用於iOS平臺。
    CarouselPage計劃棄用以支持即將發佈的CarouselView,因此本章不再討論。 MultiPage 是抽象的,不能自己實例化,但它定義了TabbedPage的大多數屬性和事件。

大師和細節

MasterDetailPage定義了兩個屬性,名爲Master和Detail類型。 通常,您將這兩個屬性設置爲ContentPage類型的對象,但是目前,要使MasterDetailPage在通用Windows平臺上工作,詳細信息頁面必須是NavigationPage。
MasterDetailPage如何在這兩個頁面之間顯示和切換取決於幾個因素:底層操作系統,無論是在手機還是平板電腦上運行程序,設備的縱向或橫向,以及MasterDetailPage屬性的設置名爲MasterBehavior。有幾種行爲是可能的:

  • 拆分:主頁面和詳細頁面並排顯示,左側爲主頁面,右側爲詳細信息。
  • popover:詳細信息頁面設置動畫以覆蓋或部分覆蓋母版頁。有三種可能性:
    o slide:詳細信息和母版頁來回滑動。
    o重疊:詳細頁面部分覆蓋母版頁。
    o swap:詳細信息頁面完全遮蓋了母版頁。
    理論上,MasterDetailPage的MasterBehavior屬性允許您在分割和彈出行爲之間進行選擇。您將此屬性設置爲MasterBehavior枚舉的五個成員之一:
  • Default
  • Split
  • SplitOnLandscape
  • SplitOnPortrait
  • Bopover

但是,正如您將看到的那樣,MasterBehavior屬性的設置對於在手機上運行的應用程序沒有任何影響。它僅影響在平板電腦或桌面上運行的應用程序。電話總是表現出彈出行爲。此行爲是導致幻燈片,重疊還是交換取決於平臺。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章