猿问

如何给ViewPager提供很多的Fragments

在程序中有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();
        }
    }

 }

肯定还有别的方法实现。大家有什么好的建议吗?


眼眸繁星
浏览 433回答 2
2回答

慕后森

FragmentPagerAdapter不用每次都实例化fragments。所以你的代码是ok的。20个fragment放在一个内存中是有点多。试一下FragmentStatePagerAdapter,会自动保存和恢复fragment,不需要把fragment一直放在内存中。不要使用switch。你可以把fragment放在一个列表中,然后再从列表中返回。List<Fragment>&nbsp;fragments; public&nbsp;Fragment&nbsp;getItem(int&nbsp;pos)&nbsp;{ &nbsp;&nbsp;return&nbsp;fragments.get(pos); } public&nbsp;void&nbsp;addFragment(Fragment&nbsp;f)&nbsp;{ &nbsp;&nbsp;fragments.add(f); }
随时随地看视频慕课网APP

相关分类

Java
我要回答