【发布时间】:2015-05-28 11:46:41
【问题描述】:
我有一个带有 5 个标签的浏览器。在 viewpager 的每个片段中,我都有一个列表视图,其中填充了我从服务器获取的数据(服务器调用由 AsyncTask 完成)。
我还使用 Fragmentstatepageradapter 来获得最流畅的导航,但是当我从一个具有列表视图的片段导航到另一个具有列表视图的片段时,似乎有些东西无法正常工作。
我想知道为什么,因为数据已经存储了,我希望 viewpager 从堆栈中弹出这些片段。
这是我的适配器:
public class TabsPagerAdapter extends FragmentStatePagerAdapter {
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
switch (index){
case 0:
return new Fragment1();
case 1:
return new Fragment2();
case 2:
return new Fragment3();
case 3:
return new Fragment4();
case 4:
return new Fragment5();
}
return null;
}
@Override
public int getCount() {
return 5;
}
}
经过一番研究,我发现 getItem() 应该始终返回片段的新实例,但我仍然无法顺利存储/恢复状态。
我试过使用myViewPager.setOffscreenPageLimit(4);,它可以提供更好的性能,但标签导航仍然有点滞后。
我是否必须重写 instantiateItem/destroyItem 才能保存片段状态?
【问题讨论】:
标签: android-fragments android-viewpager fragmentstatepageradapter