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, вам понадобится библиотека поддержки.
Это то, о чем вы спрашиваете?