Xamarin.Froms 第20局:導(dǎo)航

總目錄


前言

本文介紹導(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ù)...


總目錄

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容