Фрагмент Android onCreateView против onActivityCreated

Я знаю, что иерархия представлений фрагмента должна быть раздута в onCreateView, но какие еще функциональные возможности могут быть в onCreateView по сравнению с тем, что должно ждать onActivityCreated? Моя текущая реализация использует отдельные действия для всего, и типичное действие выполняет большую часть своей работы в своем методе onCreate, включая раздувание представления, настройку представления содержимого, инициализацию различных виджетов с данными, настройку слушателей и т. Д.

Так может ли все это быть перенесено в onCreateView, или вместо этого некоторые функции должны быть помещены в метод onActivityCreated?

1 ответ

Решение

Если ваше представление статично, то перемещение любого кода в метод onActivityCreated не требуется. Но когда вы, например, заполняете некоторые списки из адаптера, вы должны делать это в методе onActivityCreated, а также восстанавливать состояние просмотра, когда для этого используется setRetainInstance.

Также доступ к иерархии представлений родительского действия должен быть сделан в onActivityCreated, не раньше.

onActivityCreated()является устаревшим в осколке 1.3.0-alpha02 и есть рекомендация использованиеonViewCreated()вместо. Представление уже создано здесь, и вы можете установить слушателей, наблюдать за LiveData из ViewModel, инициализировать recyclerView и т. Д.

Для лучшего понимания вы можете взглянуть на мою запись в блоге, где я описываю жизненный цикл Android Fragment за 137 секунд.

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