У меня вопрос относительно библиотек поддержки Android, фрагментов и, в качестве конкретного примера, ViewPager
класса. Я намерен создать приложение с функциональностью, аналогичной образцу, представленному на веб-сайте разработчика Android ( http://developer.android.com/training/animation/screen-slide.html или http://developer.android.com/. обучение / реализация-навигация / lateral.html ). Заглянув в их код, я заметил, что они используют android.support.v4.app
библиотеку, которая, согласно моим исследованиям, является единственным способом получить доступ к ViewPager
классу.
В моей ситуации меня не интересует обратная совместимость. Минимальный уровень API - 14 (Ice Cream Sandwich), а цель сборки - 4.2 Jelly Bean. В простейшей форме мое приложение работает точно так же, как и вторая демонстрация, на которую я указал на веб-сайте разработчиков Android - просто пролистываю между тремя вкладками с содержимым в каждой.
Все статьи / сообщения / ответы, которые я прочитал, в значительной степени отдают предпочтение библиотеке поддержки v4 . Теперь для моего, хотя и длинного, вопроса (ов):
Как лучше всего структурировать мое приложение - используя
android.support.v4.app
и, следовательно, использовать SupportFragments, или использовать фрагменты, предоставленные вandroid.app
- и почему?Если «Фрагменты из»
android.app
- это лучший вариант, то каков оптимальный подходViewPagers
?Если SupportFragments лучше всего подходят для этой задачи, я бы предположил, что они обладают той же функциональностью, что и другие - так зачем вообще их использовать
android.app
?
Надеюсь, кто-то с более ясным пониманием может дать мне немного разъяснений, потому что я сбит с толку ...
Fragments
если используете,ViewPager
вам необходимо использовать библиотеку поддержкиSupportFragment
SupportFragment
не является классом в Android SDK ...SupportFragment
, я просто имею в видуFragment
класс, доступный вandroid.support.v4.app
.ViewPager
вandroid.app
.Ответы:
Вы можете использовать
ViewPager
нативные фрагменты изandroid.app
пакета с адаптерами из пакета android.support.v13.app . Для этого вы должны использовать банку поддержки v13.Есть две версии адаптеров, с которыми работают
ViewPager
: те, что вv4
пакете, предназначены для использования с вспомогательными фрагментами, а те , что находятсяv13
с собственными фрагментами.Причина, по которой сейчас существует две реализации фрагментов, является исторической: фрагменты в
android.app
пакете были представлены с Android 3 только для планшетов, а библиотека поддержки была создана для передачи фрагментов на телефоны с более старыми версиями. На Android 4 есть и то, и другое.Исходя из собственного опыта, я бы рекомендовал использовать фрагменты поддержки даже при разработке для Android 4. Вот несколько причин: Фрагмент или Фрагмент поддержки?
источник
android.app
нет,FragmentPagerAdapter
значит, стало невозможно использовать viewpager с android.app.Fragment? есть идеи здесь? есть ли опция для просмотра старого пейджера? Чтобы динамически перехватить фрагмент для заданных вкладокandroid.support.v4.app
пакете работает с опорными фрагментами, другой -android.support.v13.app
с «нормальными» фрагментамиandroid.app.Fragment
class устарел с Android P ( ссылка ), поэтому егоandroid.support.v4.app.Fragment
следует использовать везде.источник
Если вы собираетесь настроить таргетинг на API 11+, вам не понадобится библиотека поддержки (и ваш фактический apk будет, по крайней мере, меньше).
Если вы хотите поддерживать что-либо до Android 3.x, вам понадобится библиотека поддержки.
Вы об этом спрашиваете?
источник
ViewPager
функциональные возможности, и объяснение, почему это решение лучше всего.