我有一个 ViewPager、FragmentPagerAdpater 和 3 个片段来实现标签滑动视图。ViewPager 是否应该在第一次渲染后“记住”这 3 个视图?
我的问题是,一段时间后,这 3 个视图的布局被“遗忘”了。这意味着我需要再次更新它们,用户会在更新之前看到丑陋的部分。
viewpager 是否也有视图持有者模式?我可以使用什么技术来保留那些已经渲染的视图或防止它们被破坏?
我有一个 ViewPager、FragmentPagerAdpater 和 3 个片段来实现标签滑动视图。ViewPager 是否应该在第一次渲染后“记住”这 3 个视图?
我的问题是,一段时间后,这 3 个视图的布局被“遗忘”了。这意味着我需要再次更新它们,用户会在更新之前看到丑陋的部分。
viewpager 是否也有视图持有者模式?我可以使用什么技术来保留那些已经渲染的视图或防止它们被破坏?
您可以ViewPager
setOffscreenPageLimit()
用来控制在内存中保留多少页并在滚动到之前预先创建多少页。默认情况下,它的值为 1,这意味着它会将当前页面保留在内存中以及它之前和之后的页面。根据您的页面大小(全屏或部分屏幕),将其增加到例如 2 将阻止在屏幕上构建页面。
在您的选项卡适配器中,只需覆盖 destroyItem() 方法并引用 super 语句
这将保存您的片段实例,并且它们不需要一次又一次地加载
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
// super.destroyItem(container, position, object);
}
像这样的东西。