[英]Load tab (Fragment) only once when it is shown for the first time and retain it for later use
我可以使用ViewPager
将Fragments
显示为选项卡。
我想要实现的是
我知道保留所有标签,可以使用以下标签,
viewPager.setOffscreenPageLimit(4); // 4 is total number of tabs
但是,当我这样做时, 它将在开始时加载所有4个选项卡,即在开始时调用所有4个选项卡的onCreateView
。 我如何才能使其仅在首次显示时加载,然后保留以备后用。
PS此功能存在于Twitter和Facebook Android应用程序中。
要保留片段,请使视图分页器适配器扩展FragmentPagerAdapter而不是FragmentStatePagerAdapter。 片段将保留在内存中,因此无需设置页数限制。 要触发用户必须加载的内容,只需如上所述扩展setUserVisibleHint。
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && myData == null) {
loadData()
}
}
android片段确实提供了以下方法
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
}
当片段仅在屏幕上可见时,将调用此方法。 因此,无论您在onCreateView()
中执行的代码如何,都可以使用此方法进行管理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.