Каковы различия между onCreate(), onCreateView()и onActivityCreated()во фрагментах и что бы каждый из них будет использоваться?
Каковы различия между onCreate(), onCreateView()и onActivityCreated()во фрагментах и что бы каждый из них будет использоваться?
Ответы:
OnCreate ():
onCreate()Метод в Fragmentэто вызывается после того , Activity'sonAttachFragment() , но до этого Fragment-х onCreateView().
В этом методе вы можете назначать переменные, получать Intentдополнения и все, что не связано с иерархией View (т.е. неграфические инициализации). Это потому, что этот метод может быть вызван, когда Activitys onCreate()не закончен, и поэтому попытка получить доступ к иерархии View здесь может привести к сбою.
onCreateView ():
После того, как onCreate()вызывается (в Fragment), вызывается Fragment's' onCreateView(). Вы можете назначить свои Viewпеременные и выполнить любую графическую инициализацию . Ожидается, что вы вернете a Viewиз этого метода, и это основное представление пользовательского интерфейса, но если вы Fragmentне используете макеты или графику, вы можете вернуться null(происходит по умолчанию, если вы не переопределяете).
onActivityCreated ():
Как следует из названия, это вызывается после того Activity, onCreate()как завершено . Он вызывается после onCreateView()и в основном используется для окончательной инициализации (например, для изменения элементов пользовательского интерфейса).
Подводя итог ...
... они все вызваны, Fragmentно вызваны в разное время. Называется первым, для выполнения каких - либо неграфические инициализацый. Затем вы можете назначить и объявить любые переменные, в которых вы хотите использовать . После этого используйте для выполнения всех финальных инициализаций, которые вы хотите выполнить после завершения всего процесса.onCreate()ViewonCreateView()onActivityCreated()
Если вы хотите просмотреть официальную документацию по Android, ее можно найти здесь:
-
-
-onCreate()onCreateView()onActivityCreated()
Здесь также есть несколько иные, но менее разработанные вопросы / ответы здесь, о переполнении стека:
onCreateView.
Для тех, кто ищет краткий, наглядный ответ:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
И,
onActivityCreated()теперь осуждается как версия фрагментов 1.3.0-alpha02
Метод onActivityCreated () теперь устарел. Код, касающийся представления фрагмента, должен быть выполнен в onViewCreated () (который вызывается непосредственно перед onActivityCreated ()), а другой код инициализации должен быть в onCreate (). Чтобы получить обратный вызов, в частности, когда onCreate () действия завершен, LifeCycleObserver должен быть зарегистрирован в жизненном цикле действия в onAttach () и удален после получения обратного вызова onCreate ().
Подробную информацию можно найти здесь