Android - Fragments

UNE Fragment est une partie d'une activité qui permet une conception d'activité plus modulaire. Ce ne sera pas faux si nous disons qu'un fragment est une sorte desub-activity.

Voici des points importants sur le fragment -

  • Un fragment a sa propre disposition et son propre comportement avec ses propres rappels de cycle de vie.

  • Vous pouvez ajouter ou supprimer des fragments dans une activité pendant que l'activité est en cours d'exécution.

  • Vous pouvez combiner plusieurs fragments dans une seule activité pour créer une interface utilisateur à plusieurs volets.

  • Un fragment peut être utilisé dans plusieurs activités.

  • Le cycle de vie d'un fragment est étroitement lié au cycle de vie de son activité hôte, ce qui signifie que lorsque l'activité est mise en pause, tous les fragments disponibles dans l'activité seront également arrêtés.

  • Un fragment peut implémenter un comportement qui n'a pas de composant d'interface utilisateur.

  • Des fragments ont été ajoutés à l'API Android dans la version Honeycomb d'Android qui API version 11.

Vous créez des fragments en étendant Fragment classe et Vous pouvez insérer un fragment dans la mise en page de votre activité en déclarant le fragment dans le fichier de mise en page de l'activité, en tant que <fragment> élément.

Avant l'introduction du fragment, nous avions une limitation car nous ne pouvons afficher qu'une seule activité à l'écran à un moment donné. Nous n'avons donc pas été en mesure de diviser l'écran de l'appareil et de contrôler différentes parties séparément. Mais avec l'introduction du fragment, nous avons obtenu plus de flexibilité et supprimé la limitation d'avoir une seule activité à l'écran à la fois. Maintenant, nous pouvons avoir une seule activité, mais chaque activité peut comprendre plusieurs fragments qui auront leur propre mise en page, leurs événements et leur cycle de vie complet.

Voici un exemple typique de la façon dont deux modules d'interface utilisateur définis par des fragments peuvent être combinés en une seule activité pour une conception de tablette, mais séparés pour une conception de combiné.

L'application peut incorporer deux fragments dans l'activité A lorsqu'elle est exécutée sur un appareil de la taille d'une tablette. Cependant, sur un écran de la taille d'un combiné, il n'y a pas assez de place pour les deux fragments, donc l'activité A inclut uniquement le fragment de la liste d'articles, et lorsque l'utilisateur sélectionne un article, il démarre l'activité B, qui comprend le deuxième fragment à lire l'article.

Cycle de vie du fragment

Les fragments Android ont leur propre cycle de vie très similaire à une activité Android. Cette section présente les différentes étapes de son cycle de vie.

Cycle de vie du fragment

Voici la liste des méthodes que vous pouvez remplacer dans votre classe de fragment -

  • onAttach()L'instance de fragment est associée à une instance d'activité. Le fragment et l'activité ne sont pas complètement initialisés. En règle générale, vous obtenez dans cette méthode une référence à l'activité qui utilise le fragment pour d'autres travaux d'initialisation.

  • onCreate()Le système appelle cette méthode lors de la création du fragment. Vous devez initialiser les composants essentiels du fragment que vous souhaitez conserver lorsque le fragment est mis en pause ou arrêté, puis repris.

  • onCreateView()Le système appelle ce rappel lorsqu'il est temps pour le fragment de dessiner son interface utilisateur pour la première fois. Pour dessiner une interface utilisateur pour votre fragment, vous devez renvoyer unViewcomposant de cette méthode qui est la racine de la mise en page de votre fragment. Vous pouvez renvoyer null si le fragment ne fournit pas d'interface utilisateur.

  • onActivityCreated()OnActivityCreated () est appelé après la méthode onCreateView () lorsque l'activité de l'hôte est créée. L'activité et l'instance de fragment ont été créées ainsi que la hiérarchie des vues de l'activité. À ce stade, la vue est accessible avec la méthode findViewById (). exemple. Dans cette méthode, vous pouvez instancier des objets qui nécessitent un objet Contexte

  • onStart()La méthode onStart () est appelée une fois que le fragment est visible.

  • onResume()Le fragment devient actif.

  • onPause()Le système appelle cette méthode comme la première indication que l'utilisateur quitte le fragment. C'est généralement là que vous devez valider les modifications qui doivent être conservées au-delà de la session utilisateur actuelle.

  • onStop()Le fragment va être arrêté en appelant onStop ()

  • onDestroyView()La vue fragmentée sera détruite après avoir appelé cette méthode

  • onDestroy()onDestroy () appelé pour effectuer le nettoyage final de l'état du fragment mais pas garanti d'être appelé par la plate-forme Android.

Comment utiliser les fragments?

Cela implique un certain nombre d'étapes simples pour créer des fragments.

  • Tout d'abord, décidez du nombre de fragments que vous souhaitez utiliser dans une activité. Par exemple, nous voulons utiliser deux fragments pour gérer les modes paysage et portrait de l'appareil.

  • Ensuite, en fonction du nombre de fragments, créez des classes qui étendront la classe Fragment . La classe Fragment a des fonctions de rappel mentionnées ci-dessus. Vous pouvez remplacer l'une des fonctions en fonction de vos besoins.

  • Pour chaque fragment, vous devrez créer des fichiers de mise en page dans un fichier XML. Ces fichiers auront une disposition pour les fragments définis.

  • Enfin, modifiez le fichier d'activité pour définir la logique réelle de remplacement des fragments en fonction de vos besoins.

Types de fragments

Fondamentalement, les fragments sont divisés en trois étapes, comme indiqué ci-dessous.

  • Fragments de trame unique - Les fragments de trame unique sont utilisés pour les appareils de prise en main comme les mobiles, ici nous ne pouvons afficher qu'un seul fragment en tant que vue.

  • Fragments de liste - les fragments ayant une vue de liste spéciale sont appelés comme fragment de liste

  • Transaction de fragments - Utilisation avec une transaction de fragment. nous pouvons déplacer un fragment vers un autre fragment.