一个TabbedPage的第一个子页面的OnAppearing方法调用了两次

时间:2018-02-02 10:53:58

标签: c# xamarin xamarin.forms uwp tabbedpage

我有一个带有两个子页面PageA和PageB(以相同顺序)的TabbedPage。 在启动选项卡页面时,PageA的OnAppearing方法被调用两次。我该如何防止这种情况发生?

以下是TabbedPage的示例代码:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:views="clr-namespace:SampleApp.Pages"
         x:Class="SampleApp.TabbedPage1">
    <views:PageA Title="Page A" />
    <views:PageB Title="Page B" />
</TabbedPage>

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决方案。由于示例中的PageA是第一页,因此只要调用主页的InitializeComponent,就会初始化具有0索引的页面。此外,似乎Xamarin.Forms将CurrentPage属性设置为子列表中的第一页,导致OnAppearing方法被调用两次。要防止这种情况发生,可以将TabbedPage的CurrentPage属性设置为null。

以下是示例:

public TabbedPage1()
{
    InitializeComponent();
    CurrentPage = null;
}