Разница между 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

Другие вопросы по тегам