Quali sono le differenze tra onCreate()
, onCreateView()
e onActivityCreated()
nei frammenti e per cosa dovrebbero essere usati?
Quali sono le differenze tra onCreate()
, onCreateView()
e onActivityCreated()
nei frammenti e per cosa dovrebbero essere usati?
Risposte:
onCreate ():
Il onCreate()
metodo in un Fragment
viene chiamato dopo la Activity
'sonAttachFragment()
, ma prima che Fragment
' s onCreateView()
.
In questo metodo, è possibile assegnare variabili, ottenere Intent
extra e qualsiasi altra cosa che non coinvolga la gerarchia di visualizzazione (ovvero inizializzazioni non grafiche). Questo è perché questo metodo può essere chiamato quando il Activity
's onCreate()
non è finito, e quindi cercando di accedere alla gerarchia vista qui può causare un crash.
onCreateView ():
Dopo il onCreate()
si chiama (in Fragment
), le Fragment
's onCreateView()
si chiama. È possibile assegnare le View
variabili ed eseguire qualsiasi inizializzazione grafica . Si prevede di restituire un View
da questo metodo e questa è la vista principale dell'interfaccia utente, ma se Fragment
non si utilizzano layout o grafica, è possibile restituire null
(accade per impostazione predefinita se non si esegue l'override).
onActivityCreated ():
Come dice il nome, questo viene chiamato dopo che Activity
è onCreate()
stato completato . Viene chiamato dopo onCreateView()
e viene utilizzato principalmente per le inizializzazioni finali (ad esempio, la modifica degli elementi dell'interfaccia utente).
Per riassumere ...
... sono tutti chiamati nel Fragment
ma sono chiamati in momenti diversi.
La onCreate()
si chiama prima, per fare qualsiasi Inizializzazioni non grafici. Successivamente, è possibile assegnare e dichiarare qualsiasi View
variabile in cui si desidera utilizzare onCreateView()
. Successivamente, utilizzare onActivityCreated()
per eseguire le inizializzazioni finali che si desidera eseguire una volta che tutto è stato completato.
Se vuoi visualizzare la documentazione ufficiale di Android, puoi trovarla qui:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Ci sono anche alcune domande / risposte leggermente diverse, ma meno sviluppate qui su Stack Overflow:
onCreateView
.
Per chiunque cerchi una risposta concisa e pittorica:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
E,
onActivityCreated()
è ora obsoleto come Fragments Versione 1.3.0-alpha02
Il metodo onActivityCreated () è ora obsoleto. Il codice che tocca la vista del frammento dovrebbe essere eseguito in onViewCreated () (che viene chiamato immediatamente prima di onActivityCreated ()) e l'altro codice di inizializzazione dovrebbe essere in onCreate (). Per ricevere una richiamata specificamente quando l'attività onCreate () è completa, un LifeCycleObserver deve essere registrato sul ciclo di vita dell'attività in onAttach () e rimosso una volta ricevuta la richiamata onCreate ().
Informazioni dettagliate sono disponibili qui