繁体   English   中英

防止片段在ViewPager中调用onPause

[英]Keep fragments from calling onPause in ViewPager

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

我想要的是一种在ViewPager中的所有3个片段之间进行导航时维护ArrayList成员变量的简单方法。 我的对象扩展了Parcelable的OnSaveInstanceState在这种情况下将无法工作,因为它从未被调用过。 同样,对数据库或自定义的SharedPreference进行写入和读取似乎过大,并且在片段之间滑动时会引入不必要的延迟。 有没有简单的方法可以做到这一点?

使用FragmentPagerAdapter可以在ViewPager的onCreate(Bundle savedInstanceState)方法中添加以下内容:

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

这将使您的片段全部完好无损。 祝好运。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM