在程序中有20個(gè)FragmentActivity,它們都像游戲屏幕一樣以不同的結(jié)構(gòu)呈現(xiàn)。我想把它們都放在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();
}
}
}肯定還有別的方法實(shí)現(xiàn)。大家有什么好的建議嗎?
2 回答

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
FragmentPagerAdapter
不用每次都實(shí)例化fragments。所以你的代碼是ok的。
20個(gè)fragment放在一個(gè)內(nèi)存中是有點(diǎn)多。試一下FragmentStatePagerAdapter
,會(huì)自動(dòng)保存和恢復(fù)fragment,不需要把fragment一直放在內(nèi)存中。
不要使用switch。你可以把fragment放在一個(gè)列表中,然后再從列表中返回。
List<Fragment> fragments; public Fragment getItem(int pos) { return fragments.get(pos); } public void addFragment(Fragment f) { fragments.add(f); }
添加回答
舉報(bào)
0/150
提交
取消