Was sind die Unterschiede zwischen onCreate()
, onCreateView()
und onActivityCreated()
in Fragmenten und wofür würden sie jeweils verwendet?
android
android-fragments
android-lifecycle
oncreate
fragment-lifecycle
Farbod Salamat-Zadeh
quelle
quelle
Antworten:
onCreate ():
Das
onCreate()
Verfahren in aFragment
wird nach dem gerufenenActivity
‚sonAttachFragment()
aber vor , dassFragment
‘ sonCreateView()
.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 dasActivity
'sonCreate()
noch nicht fertig ist. Daher kann der Versuch, hier auf die Ansichtshierarchie zuzugreifen, zu einem Absturz führen.onCreateView ():
Nachdem das
onCreate()
(in derFragment
) aufgerufen wurde , wird dasFragment
'sonCreateView()
aufgerufen. Sie können IhreView
Variablen zuweisen und beliebige grafische Initialisierungen vornehmen . Es wird erwartet, dass Sie eineView
von dieser Methode zurückgeben. Dies ist die Hauptansicht der Benutzeroberfläche. Wenn SieFragment
jedoch keine Layouts oder Grafiken verwenden, können Sie zurückkehrennull
(dies geschieht standardmäßig, wenn Sie nicht überschreiben).onActivityCreated ():
Wie der Name schon sagt, wird dies aufgerufen, nachdem das
Activity
'sonCreate()
abgeschlossen ist . Es wird nach aufgerufenonCreateView()
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 alleView
Variablen zuweisen und deklarieren , in denen Sie sie verwenden möchtenonCreateView()
. VerwendenonActivityCreated()
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:
onCreate()
vs.onCreateView()
onCreateView()
vs.onActivityCreated()
quelle
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,
quelle
onActivityCreated () - Veraltet
onActivityCreated()
ist jetzt als Fragmente Version 1.3.0-alpha02 veraltetDetaillierte Informationen finden Sie hier
quelle