首页 > 代码库 > Xamarin.Forms中 Navigation,NavigationPage详解
Xamarin.Forms中 Navigation,NavigationPage详解
1.Xamarin Forms下有四个成员类:Element,VisualElement,Page,NavigationPage
基类为Element,继承的子类分别是VisualElement,Page,NavigationPage.
2.Navigation 为VisualElement的一个成员对象,该对象是INavigation接口类型的。
3.INavigation接口中有5个方法,如下
namespace Xamarin.Forms{ public interface INavigation { // // Methods // Task<Page> PopAsync (); Task<Page> PopModalAsync (); Task PopToRootAsync (); Task PushAsync (Page page); Task PushModalAsync (Page page); }}
4.NavigationPage下有PopAsync(),PopToRootAsync(),PushAsync(Page)的具体实现。
5.我们平时使用的时候会在App.cs 中使用“return new NavigationPage(new HomePage())”这种方式来启动一个可以包含子页面的页面。
而在HomePage页面中我们使用“Navigation.PushAsync(new NextPage())”来启动子页面。
Page对象派生出来的子类有:ContentPage,TabbedPage,NavigationPage,CarouselPage,MasterDetailPage 5大常用页面。
6.有的时候我们可能产生疑问,INavigation的5个方法的具体实现在哪里?
通过上面的类图示我们可以知道,Page对象的派生类可以实现父类中的接口,所以如果NavigationPage,ContentPage,TabbedPage..等5大页面如果实现了这些方法,
那么我们就可以在这些页面中使用“Navigation.PushAsync(new page)”方法,现实是这些子类中只有NavigationPage实现了这些方法,如下图:
NavigationPage:
ContentPage:
TabbedPage:
CarouselPage:
MasterDetailPage:
Xamarin.Forms中 Navigation,NavigationPage详解