Fragments

Android 3.0 a introduit Fragments, montrant comment prendre en charge des conceptions plus flexibles pour les nombreuses tailles d’écran différentes trouvées sur les téléphones et les tablettes. Cet article explique comment utiliser Fragments pour développer des applications Xamarin.Android, ainsi que la prise en charge des fragments sur des appareils antérieurs à Android 3.0 (niveau API 11).

Vue d’ensemble des fragments

Les grandes tailles d’écran trouvées sur la plupart des tablettes ont ajouté une couche supplémentaire de complexité au développement Android , une disposition conçue pour le petit écran ne fonctionne pas nécessairement aussi bien pour les écrans plus grands, et inversement. Pour réduire le nombre de complications introduites par cette opération, Android 3.0 a ajouté deux nouvelles fonctionnalités, Fragments et Packages de support.

Les fragments peuvent être considérés comme des modules d’interface utilisateur. Ils permettent au développeur de diviser l’interface utilisateur en parties isolées et réutilisables qui peuvent être exécutées dans des activités distinctes. Au moment de l’exécution, les activités décident elles-mêmes des fragments à utiliser.

Les packages de support étaient à l’origine appelés bibliothèques de compatibilité et autorisaient l’utilisation de fragments sur des appareils qui exécutent des versions d’Android antérieures à Android 3.0 (niveau API 11).

Par exemple, l’image ci-dessous montre comment une application unique utilise fragments sur différents facteurs de forme d’appareil.

Diagramme de l’utilisation des fragments dans les tablettes et les combinés

Le fragment A contient une liste, tandis que le fragment B contient les détails d’un élément sélectionné dans cette liste. Lorsque l’application est exécutée sur une tablette, elle peut afficher les deux fragments sur la même activité. Lorsque la même application est exécutée sur un combiné (avec sa taille d’écran plus petite), les fragments sont hébergés dans deux activités distinctes. Les fragments A et B sont identiques sur les deux facteurs de forme, mais les activités qui les hébergent sont différentes.

Pour aider une activité à coordonner et gérer tous ces fragments, Android a introduit une nouvelle classe appelée FragmentManager. Chaque activité a ses propres instance d’un FragmentManager pour l’ajout, la suppression et la recherche de fragments hébergés. Le diagramme suivant illustre la relation entre fragments et activités :

Diagramme illustrant les relations entre l’activité, le gestionnaire de fragments et les fragments

À certains égards, les fragments peuvent être considérés comme des contrôles composites ou comme des mini-activités. Ils regroupent des éléments de l’interface utilisateur dans des modules réutilisables qui peuvent ensuite être utilisés indépendamment par les développeurs dans Activités. Un fragment a une hiérarchie d’affichage, tout comme une activité, mais, contrairement à une activité, il peut être partagé entre les écrans. Les vues diffèrent des fragments en ce que les fragments ont leur propre cycle de vie ; les vues ne le font pas.

Bien que l’activité soit hôte d’un ou de plusieurs Fragments, elle n’est pas directement consciente des Fragments eux-mêmes. De même, les fragments ne sont pas directement conscients des autres fragments dans l’activité d’hébergement. Toutefois, les fragments et les activités sont conscients du FragmentManager dans leur activité. À l’aide de FragmentManager, il est possible pour une activité ou un fragment d’obtenir une référence à un instance spécifique d’un fragment, puis d’appeler des méthodes sur ce instance. De cette façon, l’activité ou les fragments peuvent communiquer et interagir avec d’autres fragments.

Ce guide contient une couverture complète sur l’utilisation des fragments, notamment :

  • Création de fragments : comment créer un fragment de base et des méthodes clés qui doivent être implémentées.
  • Gestion des fragments et transactions : comment manipuler des fragments au moment de l’exécution.
  • Package de support Android : comment utiliser les bibliothèques qui permettent l’utilisation de Fragments sur des versions antérieures d’Android.

Spécifications

Les fragments sont disponibles dans le Kit de développement logiciel (SDK) Android à partir du niveau d’API 11 (Android 3.0), comme illustré dans la capture d’écran suivante :

Sélection du niveau d’API dans le Gestionnaire du KIT de développement logiciel (SDK) Android

Les fragments sont disponibles dans Xamarin.Android 4.0 et versions ultérieures. Une application Xamarin.Android doit cibler au moins le niveau d’API 11 (Android 3.0) ou supérieur pour pouvoir utiliser fragments. L’infrastructure cible peut être définie dans les propriétés du projet, comme indiqué ci-dessous :

Définition du niveau de l’API Framework cible dans les options du projet

Il est possible d’utiliser fragments dans les versions antérieures d’Android à l’aide du package de support Android et de Xamarin.Android 4.2 ou version ultérieure. La procédure à suivre est décrite plus en détail dans les documents de cette section.