Различия и использование onCreate(), onCreateView() и onActivityCreated() во фрагментах

Каковы различия между onCreate(), onCreateView(), а также onActivityCreated() фрагменты и для чего они будут использоваться каждый?

2 ответа

Решение

OnCreate():

onCreate() метод в Fragment называется после Activity "s onAttachFragment() но до этого Fragment "s onCreateView(),
В этом методе вы можете назначить переменные, получить Intent дополнения и все остальное, что не включает иерархию View (т.е. неграфические инициализации). Это потому, что этот метод может быть вызван, когда Activity "s onCreate() не завершена, и поэтому попытка получить доступ к иерархии представления может привести к сбою.

onCreateView ():

После onCreate() называется (в Fragment), Fragment "s onCreateView() называется. Вы можете назначить свой View переменные и делать любые графические инициализации. Вы должны вернуть View из этого метода, и это основной вид интерфейса, но если ваш Fragment не использует макеты или графику, вы можете вернуть null (происходит по умолчанию, если вы не переопределяете).

onActivityCreated ():

Как следует из названия, это называется после Activity "s onCreate() завершено. Называется после onCreateView() и в основном используется для окончательной инициализации (например, для изменения элементов пользовательского интерфейса).


Подводить итоги...
... все они называются в Fragment но называются в разное время.
onCreate() вызывается первым для выполнения любых неграфических инициализаций. Далее вы можете назначить и объявить любой View переменные, которые вы хотите использовать в onCreateView(), После этого используйте onActivityCreated() делать какие-либо финальные инициализации, которые вы хотите сделать, как только все будет завершено.


Если вы хотите просмотреть официальную документацию по Android, ее можно найти здесь:
- onCreate()
- onCreateView()
- onActivityCreated()

Здесь также есть несколько иные, но менее разработанные вопросы / ответы здесь, о переполнении стека:

Для тех, кто ищет краткий, наглядный ответ:

введите описание изображения здесь https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


А также,

введите описание изображения здесь

onActivityCreated() - устарело

onActivityCreated()устарела как фрагменты версии 1.3.0-alpha02

Метод onActivityCreated() устарел. Код, касающийся представления фрагмента, должен выполняться в onViewCreated() (который вызывается непосредственно перед onActivityCreated()), а другой код инициализации должен находиться в onCreate(). Чтобы получить обратный вызов, особенно когда действие onCreate() завершено, LifeCycleObserver должен быть зарегистрирован в жизненном цикле действия в onAttach() и удален после получения обратного вызова onCreate().

Подробную информацию можно найти здесь

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