我可以使用Fragments
将ViewPager
显示为标签。
我想要实现的是,
我知道要保留所有标签,我可以使用以下内容,
viewPager.setOffscreenPageLimit(4); // 4 is total number of tabs
但是当我这样做时,会在最开始时加载所有4个标签,即在开头的所有4个标签中调用onCreateView
。如何在第一次显示时加载它,然后保留以供以后使用。
P.S。此功能存在于Twitter和Facebook Android应用程序中。
感谢任何帮助。
感谢。
答案 0 :(得分:3)
To retain the fragments make your view pager adapter extend FragmentPagerAdapter instead of FragmentStatePagerAdapter. The fragments will be retained in memory, so there is no need to set the page limit. To fire the things you have to load upon user visibility, just extend setUserVisibleHint as mentioned above.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser && myData == null) {
loadData()
}
}
答案 1 :(得分:0)
android片段确实提供了以下方法
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
}
当片段仅在屏幕上可见时,会调用此方法。
因此,无论您在onCreateView()
中执行的代码是什么,都可以在此方法中进行管理。