Каковы различия между onCreate()
, onCreateView()
и onActivityCreated()
во фрагментах и что бы каждый из них будет использоваться?
Каковы различия между onCreate()
, onCreateView()
и onActivityCreated()
во фрагментах и что бы каждый из них будет использоваться?
Ответы:
OnCreate ():
onCreate()
Метод в Fragment
это вызывается после того , Activity
'sonAttachFragment()
, но до этого Fragment
-х onCreateView()
.
В этом методе вы можете назначать переменные, получать Intent
дополнения и все, что не связано с иерархией View (т.е. неграфические инициализации). Это потому, что этот метод может быть вызван, когда Activity
s onCreate()
не закончен, и поэтому попытка получить доступ к иерархии View здесь может привести к сбою.
onCreateView ():
После того, как onCreate()
вызывается (в Fragment
), вызывается Fragment
's' onCreateView()
. Вы можете назначить свои View
переменные и выполнить любую графическую инициализацию . Ожидается, что вы вернете a View
из этого метода, и это основное представление пользовательского интерфейса, но если вы Fragment
не используете макеты или графику, вы можете вернуться null
(происходит по умолчанию, если вы не переопределяете).
onActivityCreated ():
Как следует из названия, это вызывается после того Activity
, onCreate()
как завершено . Он вызывается после onCreateView()
и в основном используется для окончательной инициализации (например, для изменения элементов пользовательского интерфейса).
Подводя итог ...
... они все вызваны, Fragment
но вызваны в разное время. Называется первым, для выполнения каких - либо неграфические инициализацый. Затем вы можете назначить и объявить любые переменные, в которых вы хотите использовать . После этого используйте для выполнения всех финальных инициализаций, которые вы хотите выполнить после завершения всего процесса.onCreate()
View
onCreateView()
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 ().
Подробную информацию можно найти здесь