В чем разница между android.app.Fragment
и android.support.v4.app.Fragment
и при каких обстоятельствах каждый из них должен использоваться?
В чем разница между android.app.Fragment
и android.support.v4.app.Fragment
и при каких обстоятельствах каждый из них должен использоваться?
android.support.v4.app.Fragment
это класс Fragment в библиотеке поддержки Android, который представляет собой пакет совместимости, который позволяет использовать некоторые из новых функций Android на старых версиях Android.
android.app.Fragment
является фрагмент класса в родной версии Android SDK. Он был представлен в Android 3 (API 11).
Если вы хотите, чтобы ваше приложение использовало фрагменты, и вы хотите нацеливать устройства до API 11, вы должны использовать android.support.v4.app.Fragment
. Однако, если вы ориентируетесь только на устройства с API 11 или выше, вы можете использовать android.app.Fragment
.
Редактировать: содержимое ОС android.app.Fragment
теперь устарело (начиная с уровня API 28), и каждый должен перейти к использованию реализаций библиотеки поддержки.
По состоянию на 2018 год:
Из
android.app.Fragment
документации :Таким образом, поддержка фрагментов
android.support.v4.app.Fragment
(android.app.Fragment
) теперь должна использоваться везде вместо собственных фрагментов ( ).источник
android.app.Fragment
класс устареет, у этого уровня API 28 будет альтернативный, возможно, радикальный подход к замене. Есть ли прямой подход или это обратно совместимыйandroid.support.v4.app.Fragment
подход?я использую
android.support.v4.app.Fragment
исключительно.Все приложения, которые я пишу, должны поддерживать Android 2.3, и это самый простой способ сделать это.
Если вы поддерживаете 11+, то придерживайтесь
android.app.Fragment
.источник
Если ваше приложение предназначено для API 11 или выше, вы можете использовать
android.app.Fragment
и ваш файл APK будет меньше.В противном случае добавьте
android.support.v4.app.Fragment
библиотеку в свой проект, чтобы поддерживать более старые версии Android API (Android 3.x).источник
android.support.v4.app.Fragment
библиотека, которую вы можете использовать для обратной совместимости с более старой версией API.Фрагменты были добавлены на уровне API 11 (наряду с другими функциями), вы должны включить эту библиотеку, чтобы расширить эти функции до устройств, предшествующих API 11. Это полезная библиотека, и я предлагаю взглянуть на ActionBarSherlock, который расширяет панель действий для устройств до API v11.
источник
Если ваше приложение предназначено для уровня API 11 или выше, вы можете использовать android.app.Fragment, и это уменьшит размер APK. В противном случае используйте android.support.v4.app.Fragment
источник