Какие действия / Fragment / FragmentManager? - PullRequest
0 голосов
/ 08 февраля 2020

Я новичок в Android программировании и совершенно не знаю, какую версию Activity и Fragment я получу, а какой FragmentManager я буду использовать. Я хочу поддерживать API уровня 15 и выше и хочу использовать androidx / Jetpack. Итак, из какой реализации Activity должна исходить моя MainActivity? И из какой реализации фрагмента будут происходить мои фрагменты? Какую реализацию FragmentManager мне использовать?

Спасибо!

1 Ответ

2 голосов
/ 11 февраля 2020

Деятельность должна происходить из AppCompatActivity.

Из https://codelabs.developers.google.com/codelabs/kotlin-android-training-app-anatomy/index.html?index=..%2F..android-kotlin-fundamentals#2

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

В общем, как правило, вам следует взглянуть на пакет, если есть androidx пакет (ранее это была android поддержка), который имеет тип класса, который вы ищете, используйте этот, поскольку они имеют обратную совместимость.

Другой способ узнать, какое действие использовать, использует android Студийное меню: если вы создаете новое действие (Файл / Новый / Действие / Основное c действие), вы можете увидеть, что сгенерированный файл использует androidx.appcompat.app.AppCompatActivity.

То же самое относится к фрагментам Фрагмент (Файл / Новый / Фрагмент), а затем вы go в исходный файл вы можете увидеть androidx.fragment.app.Fragment в импорте. Используйте это.

И о FragmentManager, если вы ищете пакет androidx с FragmentManager, вы получите androidx.fragment.app.FragmentManager.

Цитирование https://codelabs.developers.google.com/codelabs/kotlin-android-training-images-compat/#5

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

ссылаясь на классы с пространством имен androidx.

...