查看ViewPager的持有人模式?

时间:2012-09-11 10:12:25

标签: android android-viewpager

我有一个ViewPager,FragmentPagerAdpater和3个片段来实现一个标签滑动视图。 ViewPager是否应该在首次渲染后“记住”3个视图?

我的问题是,经过一段时间后,3个视图的布局被“遗忘”了。这意味着我需要再次更新它们,用户将在更新前看到丑陋的部分。

是否还有viewpager的视图持有者模式?我可以使用什么技术来保留已经渲染的视图或阻止它们被销毁?

2 个答案:

答案 0 :(得分:14)

您可以使用ViewPager setOffscreenPageLimit()来控制在滚动到内存之前保留在内存中并预先创建的页数。默认情况下,它的值为1,这意味着它会将当前页面保留在内存中,并将页面保留在它之前和之后。根据您的页面大小(全屏或部分屏幕),将其增加到例如2将阻止页面在屏幕上构建。

答案 1 :(得分:2)

在标签适配器中,只需覆盖destroyItem()方法&引用超级声明

这将保存片段的实例,并且不需要一次又一次地加载

@Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        // TODO Auto-generated method stub
        // super.destroyItem(container, position, object);
    }
像这样的东西。