Différence entre l'activité et l'activité fragmentaire


Réponses:


316

A FragmentActivityest une sous-classe Activityqui a été créée pour le package de support Android .

La FragmentActivityclasse ajoute quelques nouvelles méthodes pour assurer la compatibilité avec les anciennes versions d'Android, mais à part cela, il n'y a vraiment pas beaucoup de différence entre les deux. Assurez-vous simplement de modifier tous les appels vers getLoaderManager()et getFragmentManager()vers getSupportLoaderManager()et getSupportFragmentManager()respectivement.


4
Hé, je n'ai pas modifié les appels à getSupportLoaderManager () et getSupportFragmentManager () .. mais cela fonctionne toujours bien.
Rookie

31
C'est ce qui le rend si dangereux: P. FragmentActivityhérite des méthodes getLoaderManageret getFragmentManagerde Activityet par conséquent le compilateur ne se plaindra pas. Les chances sont que vous importez les incorrectes LoaderManageret les FragmentManagerclasses aussi. Assurez-vous que vous importez ces classes à partir du package de support ( android.support.v4.app), pas du SDK Android ( android.app).
Alex Lockwood

1
Pouvons-nous dire que si nous voulons utiliser des fragments pour la version Android 2.x, nous devons utiliser FragmentActivity nad pour la version qui prend en charge les fragments dont nous avons besoin pour utiliser Activity.
Rookie

55
Je pense que ce que vous dites est correct. Mais pour être clair à 100% ... utilisez Activitysi vous utilisez android.app.Fragment; utiliser FragmentActivitysi vous utilisez android.support.v4.app.Fragment. Ne jamais attacher un android.support.v4.app.Fragmentà un android.app.Activity, car cela entraînerait la levée d'une exception.
Alex Lockwood

13
Essayez d'abord ce didacticiel (comment l'utiliser Fragmentsdans une application). Ensuite, passez à ce didacticiel (comment utiliser les Fragments du package de support). La documentation sur le site des développeurs mérite également d'être lue.
Alex Lockwood

4

FragmentActivityfait partie de la bibliothèque de support , tandis que Activityc'est la classe par défaut du framework. Ils sont fonctionnellement équivalents.

Vous devez toujours utiliser FragmentActivityet android.support.v4.app.Fragmentau lieu de la plate-forme par défaut Activityet des android.app.Fragmentclasses. L'utilisation des valeurs par défaut de la plate-forme signifie que vous comptez sur l'implémentation des fragments utilisée dans l'appareil sur lequel vous exécutez. Celles-ci ont souvent plusieurs années et contiennent des bogues qui ont depuis été corrigés dans la bibliothèque de support.


1
Remarque: la minSdkVersionbibliothèque de support est 14 depuis la version 26.xx
Eugen Pechanec
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.