我正在使用TabbedPage
进行标签导航。我所有的Page
类都只有一个空的默认构造函数,我将数据加载到OnAppearing
方法中。我有5个标签。当我单击第二个选项卡时,也会调用第三,第四和第五页的OnAppearing
方法。
如何确保仅在单击选项卡时才加载数据?
答案 0 :(得分:1)
解决方案:
您可以在方法{{1}中获取currentPage的索引,如果索引等于1(第二页),请使用OnCurrentPageChanged
将消息发送到该页面。请参考以下代码。
在标签页中
messagecenter
在第二页中。将将数据从onAppearing加载到构造函数中的代码
protected override void OnCurrentPageChanged()
{
base.OnCurrentPageChanged();
int index = Children.IndexOf(CurrentPage);
if (index == 1)
{
MessagingCenter.Send<Object>(this, "click_second_tab");
}
else if (index == 2)
{
MessagingCenter.Send<Object>(this, "click_third_tab");
}
}