系列目錄
博客園
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
后進行修改成想要使用的類型。
加群討論
參考文章: