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