UWP:Xamarin表格选项卡页面更改页面不会调用OnAppearing

时间:2017-06-15 15:23:33

标签: tabs uwp xamarin.forms tabbedpage

在Xamarin Forms项目中,我创建了一个TabbedPage,其中添加了5个子导航页面。

{
    Children.Add(new NavigationPage(new A()));
    Children.Add(new NavigationPage(new B()));
    Children.Add(new NavigationPage(new C()));
    Children.Add(new NavigationPage(new D()));
    Children.Add(new NavigationPage(new E()));
}

当我从标签A上的标签B上手动点击时; B&#39的OnAppearing方法按预期调用。但是,当我使用

以编程方式更改选项卡时
tabbedPage.CurrentPage = tabbedPage.Children[index]

然后B&#39的OnAppearing方法被称为never。这发生在UWP上。

1 个答案:

答案 0 :(得分:0)

从Xamarin表格3.4.0.1008975和UWP 6.1.5开始,这似乎仍然是一个问题。我是这样解决的:

创建一个名为IAppearable的接口:

internal interface IAppearable
{
    void HandleAppearing();
}

让您的内容页面实现此界面:

public partial class MyContentPage : ContentPage, IAppearable

在HandleAppearing中,您可以执行OnAppearing中的操作:

public void HandleAppearing()
    {
        // do appearing stuff here
    }

以编程方式设置标签页后,请使用以下代码:

CurrentPage = Children[pageIndex];

if (Device.RuntimePlatform == Device.UWP)
{
    if (CurrentPage is IAppearable appearablePage)
    {
        appearablePage.HandleAppearing();
    }
}