Quelles sont les différences entre onCreate()
, onCreateView()
et onActivityCreated()
en fragments et à quoi serviraient-ils chacun?
Quelles sont les différences entre onCreate()
, onCreateView()
et onActivityCreated()
en fragments et à quoi serviraient-ils chacun?
Réponses:
onCreate ():
La onCreate()
méthode dans a Fragment
est appelée après le Activity
'sonAttachFragment()
mais avant celui Fragment
-ci onCreateView()
.
Dans cette méthode, vous pouvez affecter des variables, obtenir des Intent
extras et tout ce qui n'implique pas la hiérarchie View (c'est-à-dire les initialisations non graphiques). Cela est dû au fait que cette méthode peut être appelée lorsque le Activity
's onCreate()
n'est pas terminé, et donc essayer d'accéder à la hiérarchie View ici peut entraîner un plantage.
onCreateView ():
Après que le onCreate()
est appelé (dans le Fragment
), le Fragment
's onCreateView()
est appelé. Vous pouvez affecter vos View
variables et effectuer toutes les initialisations graphiques . Vous êtes censé renvoyer un View
de cette méthode, et c'est la vue principale de l'interface utilisateur, mais si votre Fragment
n'utilise pas de mises en page ou de graphiques, vous pouvez retourner null
(se produit par défaut si vous ne remplacez pas).
onActivityCreated ():
Comme son nom l'indique, cela est appelé une fois le Activity
's onCreate()
terminé . Il est appelé après onCreateView()
et est principalement utilisé pour les initialisations finales (par exemple, pour modifier des éléments d'interface utilisateur).
Pour résumer ...
... ils sont tous appelés dans le Fragment
mais sont appelés à des moments différents.
Le onCreate()
est appelé en premier, pour effectuer toutes les initialisations non graphiques. Ensuite, vous pouvez affecter et déclarer toutes les View
variables que vous souhaitez utiliser onCreateView()
. Ensuite, utilisez onActivityCreated()
pour effectuer les initialisations finales que vous souhaitez effectuer une fois que tout est terminé.
Si vous souhaitez consulter la documentation officielle d'Android, vous pouvez la trouver ici:
-
-
-onCreate()
onCreateView()
onActivityCreated()
Il y a aussi des questions / réponses légèrement différentes, mais moins développées ici sur Stack Overflow:
onCreateView
.
Pour tous ceux qui recherchent une réponse concise et imagée:
https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/
Et,
onActivityCreated()
est désormais déconseillé en tant que Fragments Version 1.3.0-alpha02
La méthode onActivityCreated () est désormais obsolète. Le code touchant la vue du fragment doit être fait dans onViewCreated () (qui est appelé immédiatement avant onActivityCreated ()) et tout autre code d'initialisation doit être dans onCreate (). Pour recevoir un rappel spécifiquement lorsque l'activité onCreate () est terminée, un LifeCycleObserver doit être enregistré sur le cycle de vie de l'activité dans onAttach () et supprimé une fois le rappel onCreate () reçu.
Des informations détaillées peuvent être trouvées ici