總目錄
前言
本文介紹導(dǎo)航:
一、導(dǎo)航概述
二、傳遞數(shù)據(jù)
三、導(dǎo)航堆棧
四、導(dǎo)航欄
環(huán)境
1.Visual Studio 2017
2.Xamarin.Froms 4.0.0.62955-pre2
3.Android 4.4(API 19)或更高版本
4.約定:XF代表Xamarin.Forms
內(nèi)容
一、導(dǎo)航概述
主要介紹頁面之間的導(dǎo)航,即:NavigationPage。使用NavigationPage可以向前或向后導(dǎo)航頁面。
從一頁跳轉(zhuǎn)到另一頁,新的頁面會置于頂層,原理如下圖所示:

從一頁返回到上一頁,最頂層頁面會先釋放,原理如下圖所示:

實現(xiàn)效果


實現(xiàn)方式

創(chuàng)建根頁,即:用MainPage的實例作為參數(shù)實例化NavigationPage,并將NavigationPage的實例設(shè)為主頁。這樣才可以在頁面中使用Navigation屬性的導(dǎo)航方法。




1.Navigation屬性:導(dǎo)航主要使用Navigation的方法,其定義如下圖所示:

2.跳轉(zhuǎn)到指定頁:
- PushAsync(Page page):跳轉(zhuǎn)到指定頁(page);
- PushAsync(Page page,bool animated):跳轉(zhuǎn)到指定頁(page),animated是否帶有動畫效果,默認(rèn)為true;
3.返回到上一頁:
- PopAsync():返回上一頁;
- PopAsync(bool animated):返回上一頁,animated是否帶有動畫效果,默認(rèn)為true;
- PopToRootAsync():返回到根頁;
- PopToRootAsync(bool animated):返回到根頁,animated是否帶有動畫效果,默認(rèn)為true;
4.插入指定頁
- InsertPageBefore(Page page,Page before):在before頁面之前插入page頁;
5.移除指定頁
- RemovePage(Page page):移除指定頁面;
6.導(dǎo)航堆棧:NavigationStack。
二、傳遞數(shù)據(jù)
頁面之間傳遞數(shù)據(jù)有兩種方法:
- 通過頁面構(gòu)造函數(shù)傳遞數(shù)據(jù)
- 通過BindingContext傳遞數(shù)據(jù)
實現(xiàn)效果


實現(xiàn)方式




三、導(dǎo)航堆棧
導(dǎo)航堆棧:通過Navigation的NavigationStack屬性可以獲取導(dǎo)航堆棧中的頁面。
NavigationStack是IReadOnlyList<Page>類型,即:它是一個頁面的集合,但是只讀??梢酝ㄟ^Navigation的方法進(jìn)行增刪。
四、導(dǎo)航欄
導(dǎo)航欄:XF中所有的View都可以在Navigation的導(dǎo)航欄中顯示。
實現(xiàn)效果


實現(xiàn)方式

可以在Navigation.TitleView中自定義導(dǎo)航欄。

1.NavigationPage.HasBackButton:是否顯示返回按鈕。
2.NavigationPage.HasNavigationBar:是否顯示導(dǎo)航欄。
后語
下篇介紹消息中心,待續(xù)...