117 votes

Quand devrais-je utiliser des fragments dans des applications Android? Pourquoi utiliser des fragments?

Cela semble une question stupide. Je sais pourquoi utiliser des fragments et le site de développement Android explique bien cela. Mais dans la plupart des cas, je veux que sur les tablettes les différentes parties aient leur propre comportement et leur propre interface et je ne sais pas comment des fragments peuvent aider. Dans la plupart des cas, je pense qu'il est plus rapide de créer deux activités différentes (une pour les tablettes et une pour les combinés) et de partager les comportements et événements courants dans une troisième classe. Alors gardez cela à l'esprit, pourquoi devrais-je utiliser des fragments?

78voto

Bob Points 424

Les Fragments sont plus d'une INTERFACE utilisateur avantage, à mon avis. Il est commode pour l'utilisateur, parfois, de voir deux points de vue différents de deux classes différentes sur le même écran. Si, dans un moment de créativité, vous décidez qu'il serait bien d'afficher votre application, par exemple, une listView qui prend la moitié de l'écran et une webView qui prend l'autre moitié, de sorte que lorsque vous cliquez sur un élément de liste dans Un fragment il passe à l'intention de la webView dans le fragment B, et tout à coup vous voyez ce que vous avez juste a cliqué sans l'application de commutation activités - ensuite, vous pouvez utiliser un fragment. C'est juste un exemple qui m'est venu sur le dessus de ma tête.

Bottom line: les Fragments sont deux activités ou plus à l'écran en même temps.

64voto

e3matheus Points 1033

Les avantages que je vois lors de l'utilisation de fragments sont:

  • L'Encapsulation de la logique.
  • Mieux gérer le cycle de vie du fragment.
  • Réutilisables dans d'autres activités.

Les inconvénients que je vois sont:

  • Plus de code(Par exemple, l'instanciation d'un fragment de manager, ajouter le fragment de la transaction, de l'écriture les rappels du fragment)
  • La Communication entre les fragments et les activités est plus difficile. Comme @jonney dit-elle, vous auriez besoin pour faire face à une interface parcelable à sérialiser vos objets que vous souhaitez passer.

Ainsi, lorsque vous décidez d'utiliser un fragment, je me pose les questions suivantes:

  • Est le cycle de vie du fragment différent de l'activité du cycle de vie?

Si le cycle de vie est différent, vous obtenez une meilleure gestion du cycle de vie à l'aide d'un fragment. Par exemple, si vous voulez détruire le fragment, mais pas l'activité. Tel est le cas, lorsque vous avez un pager de l'adaptateur.

  • Est le fragment qui va être utilisée dans plusieurs activités?

L'entrée de l'utilisateur des événements seront réutilisables si vous utilisez un fragment.

  • Le montant de la communication entre le fragment et de l'activité des petits?

Si vous avez besoin pour passer de gros objets au fragment, vous avez besoin de traiter avec le code qui sérialise. Aussi, si vous avez besoin de communiquer entre fragment et de l'activité, vous aurez probablement besoin de mettre en œuvre des interfaces. Ce, dans la plupart des cas, ajoute à la complexité de votre base de code. Ce n'est pas une différence, mais un des critères à prendre en compte.

20voto

zaxy78 Points 467

Google vous conseille de TOUJOURS utiliser des Fragments.

Pourquoi? C'est simple:

Dans le cas le plus simple, les Fragments sont utilisés comme conteneurs d'activités.

Pourquoi avez-vous besoin? Encore une fois, c'est simple.

Android 4 (ICS) prend en charge les Smartphones et les Tablettes. Cela signifie que la MÊME application va être en cours d'exécution sur un smartphone et une tablette, et ils sont susceptibles d'être très différents.

Les comprimés ont des écrans géants qui sera vide ou non - à moins que vous l'attribuer correctement.

Que signifie - Mettre les deux activités sur un fragment de la même Liste de Contacts et les informations de Contact.

Smatpone affichera la Liste de contacts, et sur une touche - affichage de l'information de contact.

Sur tablette, l'utilisateur va encore voir la liste et l'info sera la prochaine à elle.

2 activités sur un seul écran....

Smart? oui... censé être de retour compatible vers le bas pour Android 1.6......


#############################################################

O. K, Savait Déjà Que? puis - juste essayer de comprendre le cas résolus:

Beaucoup de choses fonctionnent de cette façon - liste et détails, Menus et Sous-Menus, Info, Infos Détaillées et certaines des informations plus détaillées. Vous voulez un moyen de garder naturel et lisse pour une tablette qui vous attendent à la préforme de cette façon, mais ne pouvez pas vous attendre smartphone pour afficher l'écran tout comme la tablette fait...

Pour l'obtenir?

pour plus d'Informations, consultez cette. Je pense vraiment que vous avez juste besoin de rattraper le concept....

5voto

sandalone Points 8326

Les Experts vous le diront: "Quand je vois l'INTERFACE utilisateur, je vais savoir s'il faut utiliser un Activity ou Fragment". Au début, cela n'aura pas de sens, mais dans le temps, vous allez réellement être en mesure de dire si vous avez besoin d' Fragment ou pas.

Il est une bonne pratique que j'ai trouvé très aidant pour moi. Il m'est apparu alors que j'essayais d'expliquer quelque chose à ma fille.

À savoir, imaginer une boîte qui représente un écran. Pouvez-vous charger un autre écran dans cette boîte? Si vous utilisez une nouvelle boîte de dialogue, vous avez à copier plusieurs éléments de la 1ère case? Si la réponse est Oui, alors vous devriez utiliser des Fragments, parce que la racine Activity peut contenir tous les éléments dupliqués afin de gagner du temps dans la création, et vous pouvez simplement remplacer les pièces de la boîte.

Mais n'oubliez pas que vous avez toujours besoin d'une boîte contenant (Activity) ou de vos pièces seront dispersées. Donc, une boîte avec des pièces à l'intérieur.

Prendre soin de ne pas abuser de la boîte. Android UX experts conseillent (vous pouvez les trouver sur YouTube) lorsque l'on doit charger explicitement un autre Activity, au lieu d'utiliser un Fragment (comme lorsque nous traitons avec le Tiroir de Navigation qui comporte des catégories). Une fois que vous vous sentez à l'aise avec les Fragments, vous pouvez regarder toutes ses vidéos. Même plus, ils sont obligatoires matériel.

Vous pouvez dès maintenant regarder votre INTERFACE utilisateur et de déterminer si vous avez besoin d'un Activity ou Fragment? Avez-vous un nouveau point de vue? Je pense que vous avez fait. :)

-2voto

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 sa propre callbacks.
  2. Vous pouvez ajouter ou supprimer des fragments dans un l'activité tandis que l'activité est en cours d'exécution.
  3. Vous pouvez combiner plusieurs fragments dans une activité simple à construire un multi-volet de l'INTERFACE utilisateur.
  4. Un fragment peut être utilisé dans de multiples activités.
  5. Fragment du cycle de vie est étroitement liée au cycle de vie de ses activités d'accueil qui signifie
  6. lorsque l'activité est suspendue, tous les fragments disponibles dans le acivity sera également arrêté.
  7. Un fragment peut mettre en œuvre un comportement qui n'a pas de composant de l'interface utilisateur.
  8. Des Fragments ont été ajoutés à la 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