Які відмінності між onCreate()
, onCreateView()
і onActivityCreated()
у фрагментах і що б кожен з них буде використовуватися?
Які відмінності між onCreate()
, onCreateView()
і onActivityCreated()
у фрагментах і що б кожен з них буде використовуватися?
Відповіді:
onCreate ():
onCreate()
Метод в Fragment
це викликається після того , Activity
'sonAttachFragment()
, але до цього Fragment
-х onCreateView()
.
У цьому методі ви можете призначити змінні, отримати Intent
додаткові дані та все інше, що не передбачає ієрархію перегляду (тобто не графічні ініціалізації). Це тому, що цей метод можна викликати, коли Activity
імена onCreate()
не закінчено, і тому спроба отримати доступ до ієрархії перегляду тут може призвести до збою.
onCreateView ():
Після onCreate()
виклику (в Fragment
), називається Fragment
s onCreateView()
. Ви можете призначити свої View
змінні та зробити будь-які графічні ініціалізації . Очікується, що ви повернете a View
з цього методу, і це основний перегляд інтерфейсу користувача, але якщо ваш файл Fragment
не використовує жодних макетів чи графіки, ви можете повернутися null
(відбувається за замовчуванням, якщо ви не переопрацюєте).
onActivityCreate ():
Як вказується назва, це називається після Activity
«s onCreate()
завершена . Він називається після onCreateView()
, і в основному використовується для остаточної ініціалізації (наприклад, для зміни елементів інтерфейсу).
Підводячи підсумок ...
... всі вони називаються, Fragment
але називаються в різний час.
Перший onCreate()
називається для виконання будь-яких не графічних ініціалізацій. Далі ви можете призначити та оголосити будь-які View
змінні, які ви хочете використовувати onCreateView()
. Потім onActivityCreated()
виконайте будь-які остаточні ініціалізації, які ви хочете зробити, як тільки все завершиться.
Якщо ви хочете переглянути офіційну документацію на Android, її можна знайти тут:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Тут також є кілька дещо інших, але менш розвинених питань / відповідей на Stack Overflow:
onCreateView
.
Для всіх, хто шукає стислу, образотворчу відповідь:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
І,
onActivityCreated()
тепер застаріло як фрагменти версії 1.3.0-alpha02
Метод onActivityCreate () тепер застарілий. Код, що торкається виду фрагмента, повинен здійснюватися в onViewCreate () (який викликається безпосередньо перед onActivityCreate ()), а інший код ініціалізації повинен бути в onCreate (). Для отримання зворотного дзвінка конкретно після завершення onCreate () завершення, LifeCycleObserver повинен бути зареєстрований у життєвому циклі діяльності в onAttach () та видалений, як тільки буде отримано зворотний виклик onCreate ().
Детальну інформацію можна знайти тут