标签页OnAppearing()

时间:2016-11-28 20:14:29

标签: xamarin.forms tabbedpage

我有一个Tabbed Page Xamarin Form应用程序,我正在尝试自定义。我正在从仅限IO的应用程序迁移到所有平台。在iOS中有一些函数,我使用了ViewDidDisappear(),ViewDidAppear()和ViewDidLoad();

今天的应用程序按如下方式加载选项卡页面:

{
    Children.Add(new MyPage1());
    Children.Add(new MyPage2());
    Children.Add(new MyPage3());
    Children.Add(new MyPage4());
}

每个子页面都声明如下,所有子页面都继承自ContentPage。

class MyPage1: ContentPage
{
        …
        protected override void OnAppearing()
        {
            base.OnAppearing();
            Content = SomeContentPage;
        }
}

我遇到的问题是当当前只显示MyPage1时,为所有页面调用OnAppearing()。我需要知道每个子页面的加载时间。

我已经阅读过关于消息中心但我不确定如何在这种特殊情况下实现它。消息中心是否是最佳解决方案?

如何实施一个解决方案,让我知道显示四个页面中的哪一个?

2 个答案:

答案 0 :(得分:1)

可能的解决方法是在TabbedPage中覆盖 OnCurrentPageChanged

protected override void OnCurrentPageChanged()
{
    base.OnCurrentPageChanged();

    if ( CurrentPage is YourContentPage page)
    {
        page.YourCustomCode();
    }
}

答案 1 :(得分:0)

在主TabbedPage上,添加子页面后,将CurrentPage属性设置为null可以解决问题。