【Xamarin.Forms 3】頁面型別

芝麻麻雀發表於2020-07-01

系列目錄

微信

1、【Xamarin.Forms 1】App的建立與執行

2、【Xamarin.Forms 2】App基礎知識與App啟動

知乎

1、【Xamarin.Forms 1】App的建立與執行

2、【Xamarin.Forms 2】App基礎知識與App啟動

部落格園

1、【Xamarin.Forms 1】App的建立與執行

2、【Xamarin.Forms 2】App基礎知識與App啟動

CSDN

1、【Xamarin.Forms 1】App的建立與執行

2、【Xamarin.Forms 2】App基礎知識與App啟動

專案地址

1、GitHub:https://github.com/mzy666888/HelloXamarinFormsApp

2、Gitee:https://gitee.com/sesametechgroup/HelloXamarinFormsApp

引言

本篇文章將介紹Xamarin.FormsApp 各種頁面型別。

開發環境

  1. Visual Studio 2019 16.6.2
  2. Xamarin.Forms 4.6.0.726
  3. Android 5.0 (API 級別21 - Lollipop)以上

正文

下面描述的所有頁面型別都派生自Xamarin.Forms Page類。這些視覺物件佔據全部或者大部分螢幕。Page物件表示ViewControlleriOSPage通用Windows平臺中。在Android上,每個頁面都佔據螢幕Activity,但Xamarin.Forms頁面並不是Activity物件。

Xamarin.Forms在開發中,使用到的各種頁面型別主要包括:ContentPageMasterDetailPageNavigationPageTabbedPageCarouselPageTemplatedPage。這些頁面在不同的使用場景中有不同的需求。

一、ContentPage頁面

ContentPage是最簡單且最常見的頁面型別。將Content屬性設定為一個View物件,該物件最常設定為Layout系列型別,如StackLayoutGrid或者ScrollView

二、MasterDetailPage頁面

MasterDetailPage是管理兩個資訊窗體的頁面型別。將Master屬性設定為通常顯示列表或選單的頁面。將Detail屬性設定為顯示母版頁中選定項的頁面。IsPresented屬性控制主頁面或詳細資訊頁面是否可見。

我們在專案中新增一個MasterDetailPage頁面,自動會新增三個頁面:MasterDetailPage1.xamlMasterDetailPage1Detail.xaml``MasterDetailPage1Master.xaml和一個類:MasterDetailPage1MasterMenuItem.cs
其中MasterDetailPage1Detail.xaml(顯示內容頁面),MasterDetailPage1Master.xaml(顯示選單頁面)為ContentPage型別的頁面。

在真機上執行效果如下圖(此圖為兩張圖的合併後的影像,注意根據頂部內容進行區分)

三、NavigationPage頁面

NavigationPage使用
NavigationPage使用基於堆疊的體系結構管理其他頁面中的導航。在應用程式中使用頁面導航時,主頁的例項應傳遞給物件的建構函式NavigationPage

四、TabbedPage頁面

TabbedPage派生自抽象MultiPage類,允許使用選項卡在子頁面間導航。將Children屬性設定為頁的集合,或將屬性設定ItemsSource為資料物件的集合,並將屬性設定為ItemTemplate DataTemplate描述如何以可視方式標識每個物件的屬性。

我們在專案中新增一個TabbedPage頁面,系統預設生成的佈局程式碼如下:

在真機上執行效果如下圖:

五、CarouselPage頁面

CarouselPage同樣派生自抽象MultiPage類,允許通過手指輕掃在子頁面之間導航。將Children屬性設定為物件的集合ContentPage,或將屬性設定ItemsSource為資料物件的集合,並將ItemTemplate屬性設定為DataTemplate描述如何以直觀方式表示每個物件的屬性。

六、TemplatedPage頁面

TemplatedPage使用控制元件模板顯示全屏內容,時基於類ContentPage

可在新增->新建項中,選擇Xamarin.Forms選擇中看到部分可以新增的頁面,對於沒有出現的頁面型別,可以新增一個ContentPage後進行修改成想要使用的型別。

加群討論

參考文章:

相關文章