614 votes

android - besoin de quelques éclaircissements sur les fragments par rapport aux activités et aux vues

Dans l'API Android 11+, Google a publié une nouvelle classe appelée Fragment.

Dans les vidéos, Google suggère que chaque fois que possible (link1, link2), nous devons utiliser des fragments au lieu de des activités, mais ils n'ont pas vraiment expliquer pourquoi.

Quel est le but de fragments et quelques utilisations possibles de (autre que quelques exemples de l'INTERFACE utilisateur qui peut être facilement atteint par simple views/layouts)?

Ma question est à propos de fragments:

  1. Quels sont les objectifs de l'aide d'un fragment?
  2. Quels sont les avantages et les inconvénients de l'utilisation de fragments de rapport à l'aide d'activités/views/layouts?

Bonus de questions:

  1. Pouvez-vous donner quelques vraiment intéressant utilise des fragments? Choses que Google n'a pas de mentionner dans leurs vidéos?
  2. Quelle est la meilleure façon de communiquer entre les fragments et les activités qui en contiennent?
  3. Quelles sont les choses les plus importantes à retenir lorsque vous utilisez des fragments? Des conseils et des avertissements à partir de votre expérience?

350voto

Glenn Bech Points 2009

#1 & #2 quels sont les objectifs de l'aide d'un fragment et quelles sont les les avantages et les inconvénients de l'utilisation de fragments par rapport à l'utilisation activités/views/layouts?

Les Fragments sont Android est la solution pour la création de réutilisables interfaces utilisateur. Vous pouvez obtenir quelques-uns des mêmes choses avec des activités et des mises en page (par exemple en utilisant les comprend). Cependant, les fragments sont câblés à l'API Android, de Nid d'abeille, et jusqu'. Permettez-moi de préciser;

  • L' ActionBar. Si vous voulez onglets, là-haut pour naviguer dans votre application, vous voyez rapidement que ActionBar.TabListener interface vous donne un FragmentTransaction comme argument d'entrée à l' onTabSelected méthode. Vous pourriez probablement ignorer cela, et de faire autre chose et intelligent, mais vous auriez du travail à l'encontre de l'API, pas avec elle.

  • L' FragmentManager poignées «retour» pour vous dans une manière très intelligente. De retour ne signifie pas en arrière à la dernière activité, comme pour les activités régulières. Cela signifie retour à la précédente fragment de l'état.

  • Vous pouvez utiliser la fraîcheur ViewPager avec un FragmentPagerAdapter créer balayez les interfaces. L' FragmentPagerAdapter code est beaucoup plus propre qu'un simple adaptateur, et il contrôle les instanciations des différents fragments.

  • Votre vie sera beaucoup plus facile si vous utilisez des Fragments lorsque vous essayez de créer des applications pour les téléphones et les tablettes. Depuis les fragments sont donc à égalité avec le Nid d'abeille+ Api, vous voulez les utiliser sur les téléphones ainsi de réutiliser du code. C'est là que la bibliothèque de compatibilité est très pratique.

  • Vous même peut et doit utiliser des fragments pour les applications signifiait pour les téléphones. Si vous avez la portabilité à l'esprit. J'utilise ActionBarSherlock et les bibliothèques de compatibilité pour créer des "ICS" apps, qui se ressemblent tous le chemin du retour à la version 1.6. Vous obtenez les dernières fonctionnalités comme l' ActionBar, avec des onglets, de dépassement, de fractionnement de la barre d'action, viewpager etc.

Bonus 2

La meilleure façon de communiquer entre les fragments sont ses intentions. Lorsque vous appuyez sur quelque chose dans un Fragment en règle générale, vous appelez StartActivity() avec des données. L'intention est transmis à tous les fragments de l'activité que vous lancez.

90voto

Jagan Points 441
  1. Fragment est une partie d'une activité, qui contribue à sa propre INTERFACE utilisateur pour cette activité. Fragment peut être considéré comme une sous-activité. Où que l'écran complet avec laquelle l'utilisateur interagit est appelé comme une activité. Une activité peut contenir plusieurs fragments.Les Fragments sont pour la plupart une sous-partie d'une activité.

  2. Une activité peut contenir 0 ou plusieurs fragments basé sur la taille de l'écran. Un fragment peut être réutilisé dans de multiples activités, de sorte qu'il agit comme un composant réutilisable dans les activités.

  3. Un fragment peut pas exister indépendamment. Il convient toujours de participer à une activité. Où que l'activité peut exister avec tout fragment.

85voto

Nikolay Elenkov Points 32843

Pas sûr de ce que les vidéo(s) que vous voulez dire, mais je doute qu'ils disent, vous devriez utiliser des fragments au lieu de les activités, parce qu'ils ne sont pas directement interchangeables. Il est en fait assez détaillée entrée dans le Dev Guide, considérer le lire pour plus de détails.

En bref, des fragments de vivre à l'intérieur d'activités, et chaque activité peut accueillir de nombreux fragments. Comme activités, ils ont un cycle de vie spécifique, à la différence des activités, ils ne sont pas de haut niveau les composants de l'application. Avantages de fragments d'inclure la réutilisation du code et de la modularité (par exemple, en utilisant le même mode liste dans de nombreuses activités), y compris la capacité à construire multi-volet interfaces (surtout utile sur les tablettes). Le principal inconvénient, c'est (un peu) qui ajoute à la complexité. Vous pouvez réaliser la même chose avec (personnalisé) vues dans un non-standard et moins robuste.

68voto

mani345 Points 170

Un Fragment est un élément de l'interface utilisateur de l'application ou d'un comportement qui peut être placé dans une Activité qui permettre plus modulaire de l'activité de conception. Il ne sera pas de mal, si nous disons, un fragment est un genre de sous-acitivité.

Suivantes sont des points importants au sujet de fragment:

1)- Un fragment a sa propre structure et son propre comportement avec son propre cycle de vie des rappels.

2)- Vous pouvez ajouter ou supprimer des fragments dans une activité alors que l'activité est en cours d'exécution.

4)- Vous pouvez combiner plusieurs fragments dans une activité simple à construire un multi-volet de l'INTERFACE utilisateur.

5)- Un fragment peut être utilisé dans de multiples activités.

6)- Fragment de cycle de vie est étroitement liée au cycle de vie de ses activités d'accueil.

7)- lorsque l'activité est suspendue, tous les fragments disponibles dans la acivity sera également arrêté.

8)- Un fragment de mettre en œuvre un comportement qui n'a pas de composant de l'interface utilisateur.

9)- Fragments ont été ajoutées à l'API Android en Nid d'abeille de la version d'Android qui version de l'API 11.

pour plus de détails, veuillez visiter le site officiel. http://developer.android.com/guide/components/fragments.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X