Фрагмент или 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

Лучший способ использования нескольких частных ключей SSH на одном клиенте

Есть ли способ получить потерянный / забытый пароль KeePass?

Сочетание клавиш для отправки файла в виде вложения электронной почты

codeigniter Ошибка CSRF: «Запрошенное действие не разрешено».

Android ACTION_IMAGE_CAPTURE Intent

Какова наиболее эффективная библиотека compilationов Java?

Чтение всех рабочих листов в книге Excel в списке R с помощью data.frames

Центрирование текста в JTextArea или JTextPane – горизонтальное выравнивание текста

“:” (Двоеточие) в C struct – что это значит?

Провайдер OpenVPN против SOCKS

CGImage / UIImage ленивая загрузка на stream пользовательского интерфейса вызывает заикание

разница между абстракцией и инкапсуляцией?

Как получить количество шагов от Google Fit REST API, например, приложение Google Fit?

Предотвратите запуск iTunes, когда iPhone / iPod / iPad подключен к Windows

Как создать список фреймов данных?

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