系列目錄
部落格園
2、【Xamarin.Forms 2】App基礎知識與App啟動
專案地址
1、GitHub:https://github.com/mzy666888/HelloXamarinFormsApp
2、Gitee:https://gitee.com/sesametechgroup/HelloXamarinFormsApp
引言
本篇文章將介紹Xamarin.Forms
中 App
各種頁面型別。
開發環境
- Visual Studio 2019 16.6.2
- Xamarin.Forms 4.6.0.726
- Android 5.0 (API 級別21 - Lollipop)以上
正文
下面描述的所有頁面型別都派生自Xamarin.Forms Page
類。這些視覺物件佔據全部或者大部分螢幕。Page
物件表示ViewController
在iOS
和Page
通用Windows
平臺中。在Android
上,每個頁面都佔據螢幕Activity
,但Xamarin.Forms
頁面並不是Activity
物件。
Xamarin.Forms
在開發中,使用到的各種頁面型別主要包括:ContentPage
,MasterDetailPage
,NavigationPage
,TabbedPage
,CarouselPage
,TemplatedPage
。這些頁面在不同的使用場景中有不同的需求。
一、ContentPage
頁面
ContentPage
是最簡單且最常見的頁面型別。將Content
屬性設定為一個View
物件,該物件最常設定為Layout
系列型別,如StackLayout
,Grid
或者ScrollView
。
二、MasterDetailPage
頁面
MasterDetailPage
是管理兩個資訊窗體的頁面型別。將Master
屬性設定為通常顯示列表或選單的頁面。將Detail
屬性設定為顯示母版頁中選定項的頁面。IsPresented
屬性控制主頁面或詳細資訊頁面是否可見。
我們在專案中新增一個MasterDetailPage
頁面,自動會新增三個頁面:MasterDetailPage1.xaml
,MasterDetailPage1Detail.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
後進行修改成想要使用的型別。
加群討論
參考文章: