作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 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();
}
}
}
但应该有另一种方法来做到这一点。将不胜感激任何帮助。
最佳答案
FragmentPagerAdapter
足够聪明,不会在每次需要时都实例化 fragment 。所以你的代码没问题。也就是说,在内存中保存 20 个 fragment 可能有点太多了。看看 FragmentStatePagerAdapter
,它会自动保存和恢复 fragment ,而不是让它们一直存在于内存中。
除了使用 switch
之外,您还可以拥有一个 fragment 列表并从列表中返回:
List<Fragment> fragments;
public Fragment getItem(int pos) {
return fragments.get(pos);
}
public void addFragment(Fragment f) {
fragments.add(f);
}
关于java - 如何向 ViewPager 提供许多 fragment 并避免错误代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7242657/
我是一名优秀的程序员,十分优秀!