如何向ViewPager提供许多片段并避免代码错误?

Igo*_*pov 2 java android android-layout android-compatibility

我有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();
        }
    }

 }
Run Code Online (Sandbox Code Playgroud)

但应该有另一种方法来做到这一点.将不胜感激任何帮助.

Nik*_*kov 6

FragmentPagerAdapter足够聪明,每次需要时都不会实例化片段.所以你的代码没问题.也就是说,内存中的20个碎片可能有点太多了.看一下FragmentStatePagerAdapter,它会自动保存和恢复片段,而不会让它们始终保存在内存中.

switch您可以拥有一个片段列表并从列表中返回,而不是使用a :

List<Fragment> fragments;

public Fragment getItem(int pos) {
  return fragments.get(pos);
}

public void addFragment(Fragment f) {
  fragments.add(f);
}
Run Code Online (Sandbox Code Playgroud)