我可以使用 ViewPager
将 Fragments
显示为选项卡。
我想要实现的是,
- 只有当选择 fragment 作为当前选项卡时,才应加载 fragment 的内容。
- 一旦显示并加载了一个选项卡,那么每当我返回同一个选项卡时,它就会被保留,即不会再次加载。
我知道保留我可以使用以下内容的所有选项卡,
viewPager.setOffscreenPageLimit(4); // 4 is total number of tabs
但是当我这样做时,它会在开始时加载所有 4 个选项卡,即在开始时调用所有 4 个选项卡的 onCreateView
。如何才能使其仅在第一次显示时加载,然后保留以供以后使用。
附注Twitter 和 Facebook Android 应用程序中存在此功能。
最佳答案
要保留 fragment ,请使 View 分页器适配器扩展 FragmentPagerAdapter 而不是 FragmentStatePagerAdapter。 fragment 将保留在内存中,因此无需设置页限制。要触发必须在用户可见性时加载的内容,只需如上所述扩展 setUserVisibleHint 即可。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && myData == null) {
loadData()
}
}
关于java - 仅在第一次显示时加载选项卡(Fragment)一次并保留以供以后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49953641/