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