码迷,mamicode.com
首页 > 其他好文 > 详细

Xamarin.Forms中 Navigation,NavigationPage详解

时间:2014-11-23 13:02:59      阅读:996      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   ar   使用   sp   for   on   div   

bubuko.com,布布扣

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:

bubuko.com,布布扣

ContentPage:

bubuko.com,布布扣

TabbedPage:

bubuko.com,布布扣

CarouselPage:

bubuko.com,布布扣

MasterDetailPage:

bubuko.com,布布扣

Xamarin.Forms中 Navigation,NavigationPage详解

标签:blog   http   io   ar   使用   sp   for   on   div   

原文地址:http://www.cnblogs.com/lvfeilong/p/4654gfhg.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!