Différence et utilisation d'onCreate (), onCreateView () et onActivityCreated () dans les fragments

quelles sont les différences entre onCreate() , onCreateView() , et onActivityCreated() en fragments et à quoi servent-ils chacun?

240
demandé sur Farbod Salamat-Zadeh 2015-03-08 20:33:13

2 réponses

onCreate ():

la méthode onCreate() dans un Fragment est appelé après le Activity 's onAttachFragment() mais avant que Fragment 's onCreateView() .

Dans cette méthode, vous pouvez assigner des variables, obtenir Intent extras, et n'importe quoi d'autre qui n'implique pas la hiérarchie de vue (c.-à-d. initialisations non graphiques). C'est parce que ce la méthode peut être appelée lorsque le Activity 's onCreate() n'est pas terminé, et donc essayer d'accéder à la hiérarchie de vue ici peut entraîner un plantage.

onreateview ():

Après le onCreate() est appelé (dans le Fragment ), le Fragment 's onCreateView() est appelé. Vous pouvez affecter vos variables View et à n'importe quelle initialisation graphique . Vous êtes censé retourner un View de cette méthode, et c'est la vue principale de L'UI, mais si votre Fragment n'utilise pas de layouts ou de graphiques, vous pouvez retourner null (arrive par défaut si vous ne surchargez pas).

onActivityCreated ():

comme le nom l'indique, c'est appelé après le Activity 's onCreate() a complété . Il est appelé après onCreateView() , et est principalement utilisé pour initialisations (par exemple, modification des éléments de L'interface utilisateur).


en résumé...

... ils sont tous appelés dans le Fragment mais sont appelés à des moments différents.

Le onCreate() est appelé en premier, pour faire des initialisations non graphiques. Ensuite, vous pouvez assigner et déclarer n'importe quelles variables View que vous voulez utiliser dans onCreateView() . Ensuite, utilisez onActivityCreated() pour faites toutes les initialisations finales que vous voulez faire une fois que tout est terminé.


si vous voulez voir la documentation officielle Android, il peut être trouvé ici:

- onCreate()

- onCreateView()

- onActivityCreated()

Il y a aussi des questions/réponses légèrement différentes, mais moins développées ici sur le débordement de la pile:

316
répondu Farbod Salamat-Zadeh 2017-05-23 11:54:58
75
répondu pulp_fiction 2017-06-16 06:39:07