在程序中有20个FragmentActivity,它们都像游戏屏幕一样以不同的结构呈现。我想把它们都放在ViewPager中。我查了半天资料就获得了以下方法:public static class MyAdapter extends FragmentPagerAdapter {
@Override
public Fragment getItem(int position) {
switch(position){
case 0:
return new Fragment1();
case 1:
return new Fragment2();
.........................
another 20 case statements here
.........................
case 20:
return new Fragment21();
}
}
}肯定还有别的方法实现。大家有什么好的建议吗?
2 回答
慕后森
TA贡献1802条经验 获得超5个赞
FragmentPagerAdapter
不用每次都实例化fragments。所以你的代码是ok的。
20个fragment放在一个内存中是有点多。试一下FragmentStatePagerAdapter
,会自动保存和恢复fragment,不需要把fragment一直放在内存中。
不要使用switch。你可以把fragment放在一个列表中,然后再从列表中返回。
List<Fragment> fragments; public Fragment getItem(int pos) { return fragments.get(pos); } public void addFragment(Fragment f) { fragments.add(f); }
添加回答
举报
0/150
提交
取消