Разница между android.app.Fragment и android.support.v4.app.Fragment
В чем разница между android.app.Fragment
а также android.support.v4.app.Fragment
и каковы обстоятельства, при которых каждый из них должен быть использован?
6 ответов
android.support.v4.app.Fragment
класс Fragment в библиотеке поддержки Android, который представляет собой пакет совместимости, который позволяет использовать некоторые из новых функций Android на более старых версиях Android.
android.app.Fragment
класс Fragment в родной версии Android SDK. Он был представлен в Android 3 (API 11).
Если вы хотите, чтобы ваше приложение использовало фрагменты, и хотите настроить таргетинг на устройства до API 11, вы должны использовать android.support.v4.app.Fragment
, Однако, если вы ориентируетесь только на устройства с API 11 или выше, вы можете использовать android.app.Fragment
,
Редактировать: OS-содержащий android.app.Fragment
в настоящее время не рекомендуется (начиная с уровня API 28), и каждый должен перейти к использованию реализаций библиотеки поддержки.
По состоянию на 2018 год:
От android.app.Fragment
документация:
Этот класс устарел на уровне API 28.
Используйте библиотеку поддержкиFragment
для согласованного поведения на всех устройствах и доступа к жизненному циклу.
Так что поддержите фрагменты (android.support.v4.app.Fragment
) следует использовать везде вместо нативных фрагментов (android.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