В чем разница между FragmentPagerAdapter
и FragmentStatePagerAdapter
?
О FragmentPagerAdapter
руководство Google говорит:
Эта версия пейджера лучше всего подходит для использования, когда имеется несколько статических фрагментов, которые нужно пролистать, например, набор вкладок. Фрагмент каждой страницы, которую пользователь посещает, будет храниться в памяти, хотя его иерархия просмотра может быть разрушена, если она не видна. Это может привести к использованию значительного объема памяти, поскольку экземпляры фрагмента могут удерживать произвольное количество состояния. Для больших наборов страниц рассмотрите
FragmentStatePagerAdapter
.
А насчет FragmentStatePagerAdapter
:
Эта версия пейджера более полезна, когда имеется большое количество страниц, и работает больше как представление списка. Когда страницы не видны пользователю, весь их фрагмент может быть уничтожен, сохраняя только сохраненное состояние этого фрагмента. Это позволяет пейджеру удерживать гораздо меньше памяти, связанной с каждой посещаемой страницей, по сравнению с
FragmentPagerAdapter
за счет потенциально больших накладных расходов при переключении между страницами.
Так что у меня всего 3 фрагмента. Но все они являются отдельными модулями с большим объемом данных.
Fragment1
обрабатывает некоторые данные (которые вводят пользователи) и передает их посредством действия в Fragment2
, который является простым ListFragment
. Fragment3
также является ListFragment
.
Итак, мои вопросы: какой адаптер я должен использовать? FragmentPagerAdapter
или FragmentStatePagerAdapter
?