Фрагмент или fragment поддержки?

Я разрабатываю приложение, поддерживающее Android> = 4.0. Он использует fragmentы из пакета android.app . Поскольку я сталкиваюсь с проблемами с более старой версией fragmentа в версии 4.0, как этот , которые уже исправлены в библиотеке поддержки, я рассматриваю возможность возврата к реализации fragmentа из библиотеки поддержки, чтобы получить более надежную и последовательную реализацию.

Как вы относитесь к этому? Используете ли вы fragmentы из библиотеки поддержки, даже если они уже доступны, при разработке для Android 4?

5 Solutions collect form web for “Фрагмент или fragment поддержки?”

По моему опыту, использование одного и того же fragmentа на всех устройствах Android является большим преимуществом. Я не мог избавиться от всех NullPointerExceptions, когда состояние сохранено на Android 4.0 с использованием собственных fragmentов, при этом библиотека поддержки все ушла. Кроме того, пока я не вижу недостатка в этом подходе.

Поэтому мой ответ на мой вопрос сейчас: при разработке для Android 4.x хорошая идея – использовать fragmentы из библиотеки поддержки. В библиотеке поддержки исправлены ошибки, которые все еще присутствуют в более старых реализациях fragmentов и часто обновляются с исправлением ошибок.

Одной из серьезных причин придерживаться SupportFragment на некоторое время является то, что у вас нет доступа к ChildFragmentManager до API 17. Библиотека поддержки предоставит вам версию поддержки диспетчера дочерних fragmentов.

Это становится большой проблемой, если у вас есть fragmentы, содержащие другие fragmentы. Это обычное явление в планшетных приложениях с большой сложностью и / или ваша общая архитектура основана на макете с вкладками или использует ящик навигации.

Я также разочаровался в необходимости включения библиотек поддержки, несмотря на таргетинг на Android 4.0+, но, похоже, это официально рекомендуется:

Пакет библиотеки поддержки Android содержит несколько библиотек, которые могут быть включены в ваше приложение. Каждая из этих библиотек поддерживает определенный диапазон версий платформы Android и набор функций.

В этом руководстве объясняются важные функции и поддержка версий, предоставляемые библиотеками поддержки, которые помогут вам решить, какие из них вы должны включить в свое приложение. В общем, мы рекомендуем включать библиотеки поддержки v4 и v7 appcompat, поскольку они поддерживают широкий спектр версий Android и предоставляют API для рекомендуемых шаблонов пользовательского интерфейса.

http://developer.android.com/tools/support-library/features.html

ИМХО, если вы планируете разрабатывать только для версии 4.0, я бы порекомендовал идти с родными библиотеками, так как исполняемый файл будет меньше. Это правда, что вы можете столкнуться с проблемами ошибок в ранних версиях, но я думаю, что большинство из них должно быть довольно тривиально для работы. Также предполагается, что библиотека совместимости должна сопоставляться с нативными fragmentами, если вы все равно работаете на 4.0 и выше. Таким образом, вам все равно придется бороться с такими проблемами. Проблема с библиотеками поддержки заключается в том, что у вас есть много classов, которые появляются 2x (один раз в структуре пакета поддержки и один раз в «родной» структуре пакета), что делает разработку немного более громоздкой.

Однако, если вы хотите также отпустить приложение до 4.0, нет никакой возможности обойти библиотеку поддержки. Кроме того, примерно 38% всех пользователей на 2.3 могут иметь смысл включить эту версию ОС. В таком случае вы можете использовать библиотеку поддержки в сочетании с Jake Wartons ActionBarSherlock (или с помощью googles поддержки библиотеки ActionBar после ее окончательного выпуска).

Кажется, что лучше использовать библиотеку поддержки сейчас, потому что я видел здесь инструкцию https://developer.android.com/reference/android/app/Fragment.html

Этот class устарел на уровне API P. Используйте fragment библиотеки поддержки для последовательного поведения на всех устройствах и доступа к жизненному циклу.

Interesting Posts

Аутентификация Facebook без кнопки входа в систему

Сброс цветов в командной строке Windows (cmd)

Как я могу отобразить все 8 временных файлов NTFS?

Для чего используется плагин maven-shade, и почему вы хотите переместить пакеты Java?

Скребок сети супермаркетов Аргентины

Как я могу автоматически копировать файлы на USB-накопитель, когда я подключаю его к компьютеру?

std :: stoi не существует в g ​​++ 4.6.1 на MinGW

функция члена шаблона classа шаблона, вызванная из функции шаблона

Может ли индикатор выполнения работать в classе за пределами основного?

Как вернуть несколько значений из функции в C?

Является ли Bluetooth привязкой медленнее, чем WiFi?

Включить удаленные подключения для SQL Server Express 2012

Windows долго сидит на экране «Please Wait» во время загрузки?

Колесико прокрутки

Как ValueTypes происходят из Object (ReferenceType) и все еще являются ValueTypes?

Давайте будем гением компьютера.