FragmentPagerAdapter
достаточно умен, чтобы не создавать фрагменты каждый раз, когда они нужны.Таким образом, ваш код в порядке.Тем не менее, 20 фрагментов, хранящихся в памяти, могут быть слишком много.Взгляните на FragmentStatePagerAdapter
, он будет автоматически сохранять и восстанавливать фрагменты, не сохраняя их постоянно в памяти.
Вместо использования switch
вы можете получить список фрагментов и вернуться изсписок:
List<Fragment> fragments;
public Fragment getItem(int pos) {
return fragments.get(pos);
}
public void addFragment(Fragment f) {
fragments.add(f);
}