Разница FragmentPagerAdapter и PagerAdapter

Я прочитал документацию для android pageadapter и fragpageadapter, и я не видел никакой разницы. Я имею в виду, что один - это фрагмент, а другой - не... это все? У меня не так много опыта с фрагментами, поэтому, возможно, поэтому я не замечаю никакой разницы. Так в чем разница, если я использую FragmentPagerAdapter или PagerAdapter??

Ответы

Ответ 1

Разница в том, что вы можете использовать фрагменты внутри FragmentPageAdapter. Если вы хотите иметь фрагменты, которые будут использоваться в других частях вашего кода, это ваш адаптер. В противном случае, если вы хотите иметь код, который не будет использоваться повторно, вы можете использовать PagerAdapter.

Ответ 2

Реализация PagerAdapter, которая использует фрагмент для управления каждой страницей. Но я настоятельно рекомендую использовать класс FragmentStatePagerAdapter, также обрабатывает сохранение и восстановление состояния фрагмента.

Версия FragmentStatePagerAdapter пейджера более полезна, когда имеется большое количество страниц, больше похоже на просмотр списка. Когда страницы не видны пользователю, их весь фрагмент может быть уничтожен, сохраняя сохраненное состояние этого фрагмента. Это позволяет пейджеру удерживать гораздо меньшую память, связанную с каждой посещенной страницей, по сравнению с FragmentPagerAdapter за счет потенциально большего количества накладных расходов при переключении между страницами.

При использовании FragmentPagerAdapter хост ViewPager должен иметь действительный набор идентификаторов.

Подклассам нужно только реализовать getItem (int) и getCount(), чтобы иметь рабочий адаптер.

Вот пример реализация пейджера FragmentStatePagerAdapter, содержащего фрагменты списков