Android.app Фрагменты против android.support.v4.app с помощью ViewPager?

У меня есть вопрос, касающийся библиотек поддержки Android, фрагментов, а в качестве конкретного примера - класса ViewPager. Я намерен создать приложение с аналогичной функциональностью для примера, представленного на веб-сайте разработчика Android (http://developer.android.com/training/animation/screen-slide.html или http://developer.android.com/training/implementing-navigation/lateral.html). Заглянув в их код, я заметил, что они используют библиотеку android.support.v4.app, которая из моего исследования является единственным способом доступа к классу ViewPager.

В моей ситуации я не заинтересован в обратной совместимости. Минимальный уровень API - 14 (Ice Cream Sandwich), а цель сборки - 4,2 желе Bean. В этом простейшем виде мое приложение работает точно так же, как и второе демо, которое я связал на веб-сайте Android dev - просто прокручивая три вкладки с содержимым в каждом.

Все статьи/сообщения/ответы, которые я прочитал, по-видимому, в большой степени поддерживают библиотеку поддержки v4. Теперь для моих, хотя и долговечных, вопросов:

  • Какой лучший способ структурировать мое приложение - используя android.support.v4.app и тем самым используя SupportFragments или использовать фрагменты, представленные в android.app - и почему?

  • Если фрагменты из android.app - это путь, то какой оптимальный способ приблизиться к ViewPagers?

  • Если SupportFragments лучше всего подходят для задачи, я бы оценил, что они обладают той же функциональностью, что и другая, - так что цель иметь их вообще внутри android.app?

Надеюсь, кто-то с более ясным пониманием может дать мне немного разъяснений, потому что я ошеломлен...

Ответ 1

Вы можете использовать ViewPager с нативными фрагментами из пакета android.app с адаптерами из пакета android.support.v13.app, Для этого вы должны использовать банку поддержки v13.

Существуют две версии адаптеров, которые работают с ViewPager, те, что содержатся в пакете v4, предназначены для использования с фрагментами поддержки, те, что находятся в v13 с нативными фрагментами.

Причина, по которой в настоящее время реализованы две реализации фрагмента, является исторической: фрагменты в пакете android.app были представлены с Android 3 только для планшетов, и была создана библиотека поддержки, чтобы принести фрагменты на телефоны, работающие на старых версиях. На Android 4 у вас есть оба.

Из моего собственного опыта я бы рекомендовал использовать фрагменты поддержки, даже при разработке для Android 4. Вот несколько причин: Фрагмент или фрагмент поддержки?

Ответ 2

Если вы собираетесь настроить таргетинг на API 11+, вам не понадобится библиотека поддержки [и ваш фактический apk будет меньше, по крайней мере).

Если вы хотите что-либо поддержать перед Android 3.x, вам понадобится библиотека поддержки.

Это то, о чем вы спрашиваете?