在程序中有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
提交
取消