gpt4 book ai didi

java - 调用 OnDestroyView 后从 OnCreateView 保留 Fragment 的主视图

转载 作者:行者123 更新时间:2023-12-02 04:34:51 25 4
gpt4 key购买 nike

我有一个主要的Activity,其中包含一个带有4个选项卡的ViewPager。每个选项卡内部都有一个fragment。我在主Activity 上实现了ActionBar.TabListener。在 OnTabSelected 方法中,我对所选 fragment 调用自定义 fragment.refresh 方法,以便刷新和更新 fragment 来自服务器。 refresh 方法重置数据。

当我关闭应用程序并在一段时间后重新打开它时,我在从 OnCreateView 返回的主视图上收到 NullPointerException fragment

我的问题是:调用 OnDestroyView 后如何保留 fragment 的主视图?或者,如何确保在调用 OnCreateView 后调用刷新? (我应该使用带有 while 循环的标志吗?

最佳答案

您可以尝试将自定义fragment.refresh()放入fragment.onResume()中。这样,在向用户显示 fragment 之前,将自动调用刷新。

如果您确实想仅在用户单击选项卡时更新 fragment ,您可以执行类似的操作:

refresh(){
if(getActivity()!=null && !isDetached()){ // check if fragment is visible
refreshData(); // refresh data
}else{
needRefresh=true; // set flag for refresh
}
}

onCreate(...){
...
if(needRefresh){
needRefresh = false;
refreshData();
}
}

我认为你应该采用第一个解决方案,因为我担心第二个解决方案可能并不完美。

关于java - 调用 OnDestroyView 后从 OnCreateView 保留 Fragment 的主视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com