public class MyPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragmentList;
/**
* Use this method to add pages in order
*/
private void initializeFragmentList() {
fragmentList = new ArrayList<>();
fragmentList.add(LocationCriteriaFragment.newInstance("FirstFragment", "Instance 1"));
fragmentList.add(NeighborhoodRatingFragment.newInstance("", ""));
fragmentList.add(PropertyCriteriaFragment.newInstance("", ""));
fragmentList.add(ExteriorPhotoEnhancedFeaturesFragment.newInstance());
fragmentList.add(InteriorPhotoEnhancedFeaturesFragment.newInstance());
}
public MyPagerAdapter(android.support.v4.app.FragmentManager fm) {
super(fm);
initializeFragmentList();
}
public List<Fragment> getFragmentList() {
return fragmentList;
}
@Override
public Fragment getItem(int pos) {
return fragmentList.get(pos);
}
@Override
public int getCount() {
return fragmentList.size();
}
}
Я использую это как адаптер для ViewPager
. Является ли это хорошим подходом для быстрого получения ссылок на фрагменты на основе позиций? Окажет ли это огромный неожиданный сбой во время некоторой части жизненного цикла Fragment
/Activity
?Есть ли что-то не так с этим подходом FragmentPagerAdapter?
Я не вижу никаких проблем. Все хорошо. Если вы хотите просмотреть код, вы можете опубликовать его на http://codereview.stackexchange.com. –
Я не согласен с моим предыдущим комментарием, FragmentPagerAdapter лучше подходит для этого случая вместо FragmentStatePagerAdapter. –
На мой взгляд, используя этот подход, вы не сможете воспользоваться «ленивой инициализацией объектов фрагмента», поскольку ваши фрагменты будут созданы в момент создания вашего адаптера, который хорош, если ваши фрагменты не будут тяжелыми, в этом случае он будет создавать заметное отставание при первоначальном рендеринге. Посмотрите здесь https://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html – raktale