我使用this library来实现Android中的底部导航栏(而不是旧的tablayout),问题是调用OnAppearing/Disappearing
就是这样:
OnAppearing
OnDisappearing
OnAppearing
我在ViewModel
方法中调用我的LoadData()
OnAppearing
方法(负责从其他API获取数据并填充视图),因为它' s调用两次,应用程序面临性能问题。另外,OnDisappearing
在OnAppearing
之后调用时,我无法使用bool
来处理何时调用LoadData()
。那么我该如何解决这个问题呢?
答案 0 :(得分:2)
,无论它是否是当前最可见的视图,该方法将触发。你应该在OnAppearing()中添加一个检查,你的视图位于堆栈顶部,如果不是什么都不做的话。
protected override void OnAppearing()
{
var Page = Navigation.NavigationStack.Last();
if (Page.GetType() == typeof(NAMEOFPAGECLASSYOURON))
{
// Do what you want to do only if your on this page.
}
}
答案 1 :(得分:0)
不确定为什么它会被调用两次,但你可以使用这个技巧。在类变量中存储OnAppearing的时间戳。当OnAppearing被调用时,检查上次调用的时间以及时间(假设)是否小于10秒不进行任何操作