在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上。
答案 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();
}
}