保持片段不在ViewPager中调用onPause

时间:2014-06-29 15:20:32

标签: android android-viewpager fragment

我有一个带有3个标签的ViewPager。基于我所看到的,当容器活动开始时,前两个片段处于恢复状态。我还注意到,只有两个并排的片段被恢复,第三个片段被停止。我遇到的问题是我从网络加载数据以便在第一个片段中使用并在ArrayList中存储自定义对象,这很好,但是当我导航到第三个片段时,当第一个片段进入停止状态时数据丢失。因此,在从第三个片段导航回第一个片段时,ArrayList将为空(我在onCreate中启动AsyncTask以检索并填充ArrayList)。

我想要的是一种简单的方法来维护ArrayList成员变量,以便在ViewPager中的所有3个片段之间进行导航。我的对象扩展Parcelable的OnSaveInstanceState在这种情况下不起作用,因为它从未调用过。此外,写入和读取数据库或自定义SharedPreference似乎有点矫枉过正,并在片段之间滑动时引入了不必要的延迟。有没有一种简单的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

使用FragmentPagerAdapter,您可以在ViewPager上的onCreate(Bundle savedInstanceState)方法中添加以下内容,如下所示:

ViewPager mViewPager = (ViewPager) findViewById(R.id.myViewPager);
mViewPager.setOffScreenPageLimit(2);

这将使您的碎片保持完整。祝你好运。