Was sind die Unterschiede zwischen onCreate()
, onCreateView()
und onActivityCreated()
in Fragmenten und wofür würden sie jeweils verwendet?
Was sind die Unterschiede zwischen onCreate()
, onCreateView()
und onActivityCreated()
in Fragmenten und wofür würden sie jeweils verwendet?
Antworten:
onCreate ():
Das onCreate()
Verfahren in a Fragment
wird nach dem gerufenen Activity
‚sonAttachFragment()
aber vor , dass Fragment
‘ s onCreateView()
.
Bei dieser Methode können Sie Variablen zuweisen, Intent
Extras abrufen und alles andere, was nicht die Ansichtshierarchie betrifft (dh nicht grafische Initialisierungen). Dies liegt daran, dass diese Methode aufgerufen werden kann, wenn das Activity
's onCreate()
noch nicht fertig ist. Daher kann der Versuch, hier auf die Ansichtshierarchie zuzugreifen, zu einem Absturz führen.
onCreateView ():
Nachdem das onCreate()
(in der Fragment
) aufgerufen wurde , wird das Fragment
's onCreateView()
aufgerufen. Sie können Ihre View
Variablen zuweisen und beliebige grafische Initialisierungen vornehmen . Es wird erwartet, dass Sie eine View
von dieser Methode zurückgeben. Dies ist die Hauptansicht der Benutzeroberfläche. Wenn Sie Fragment
jedoch keine Layouts oder Grafiken verwenden, können Sie zurückkehren null
(dies geschieht standardmäßig, wenn Sie nicht überschreiben).
onActivityCreated ():
Wie der Name schon sagt, wird dies aufgerufen, nachdem das Activity
's onCreate()
abgeschlossen ist . Es wird nach aufgerufen onCreateView()
und hauptsächlich für endgültige Initialisierungen verwendet (z. B. zum Ändern von UI-Elementen).
Zusammenfassend lässt sich sagen, dass
sie alle in der, Fragment
aber zu unterschiedlichen Zeiten aufgerufen werden.
Das onCreate()
wird zuerst aufgerufen, um nicht grafische Initialisierungen durchzuführen. Als Nächstes können Sie alle View
Variablen zuweisen und deklarieren , in denen Sie sie verwenden möchten onCreateView()
. Verwenden onActivityCreated()
Sie anschließend, um die endgültigen Initialisierungen durchzuführen, die Sie durchführen möchten, sobald alles abgeschlossen ist.
Wenn Sie die offizielle Android-Dokumentation anzeigen möchten, finden Sie diese hier:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Es gibt auch einige etwas andere, aber weniger entwickelte Fragen / Antworten hier auf Stack Overflow:
onCreateView
.
Für alle, die eine präzise, bildliche Antwort suchen:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
Und,
onActivityCreated()
ist jetzt als Fragmente Version 1.3.0-alpha02 veraltet
Die onActivityCreated () -Methode ist jetzt veraltet. Code, der die Ansicht des Fragments berührt, sollte in onViewCreated () (das unmittelbar vor onActivityCreated () aufgerufen wird) erfolgen, und anderer Initialisierungscode sollte in onCreate () enthalten sein. Um einen Rückruf speziell zu erhalten, wenn onCreate () der Aktivität abgeschlossen ist, sollte ein LifeCycleObserver im Lebenszyklus der Aktivität in onAttach () registriert und entfernt werden, sobald der onCreate () - Rückruf empfangen wurde.
Detaillierte Informationen finden Sie hier