Guide des fonctionnalités de la bibliothèque Support

Remarque:Avec la sortie d'Android 9.0 (niveau d'API 28), une nouvelle version de la bibliothèque Support appelée AndroidX fait partie de Jetpack. La bibliothèque AndroidX contient la bibliothèque Support existante et inclut également les derniers composants Jetpack.

Vous pouvez continuer à utiliser la bibliothèque Support. Les artefacts historiques (ceux de la version 27 ou antérieure, et empaquetés sous la forme android.support.*) resteront disponibles sur Google Maven. Toutefois, tout développement de nouvelle bibliothèque aura lieu dans la bibliothèque AndroidX.

Nous vous recommandons d'utiliser les bibliothèques AndroidX dans tous les nouveaux projets. Vous devez également envisager de migrer des projets existants vers AndroidX.

Les bibliothèques Support fournissent un large éventail de classes pour la création d'applications : composants d'application fondamentaux, widgets d'interface utilisateur, gestion de contenus multimédias, et composants d'applications pour téléviseur. La plupart des classes sont des implémentations rétrocompatibles, mais certaines d'entre elles sont de nouvelles fonctionnalités.

Ce document présente les principales catégories de fonctionnalités disponibles dans la bibliothèque Support, ainsi que les classes spécifiques à connaître lorsque vous créez votre application.

Pour savoir comment ajouter le code de la bibliothèque Support à votre projet de développement d'applications, consultez Configurer la bibliothèque Support. Pour savoir comment inclure des packages de bibliothèques Support spécifiques dans votre projet, consultez Packages de bibliothèques Support.

Composants de l'appli

Ces classes de la bibliothèque Support fournissent des implémentations rétrocompatibles des fonctionnalités importantes de la plate-forme. Cette implémentation étend généralement les versions antérieures de la classe afin de gérer les nouvelles méthodes et fonctionnalités ajoutées dans les versions plus récentes de la plate-forme. Certaines de ces classes sont des implémentations statiques et complètes des API de framework.

  • Activités
    • ActivityCompat : inclut une implémentation rétrocompatible pour les principales fonctionnalités récentes des activités, telles que les autorisations d'exécution et les transitions d'animation.
    • FragmentActivity : fournit une implémentation rétrocompatible pour les activités permettant d'utiliser les versions de bibliothèque Support des API Fragment et Loader.
    • AppCompatActivity : fournit la prise en charge des thèmes de couleur Material, des teintes des widgets et de la barre d'application sur les appareils plus anciens. Pour utiliser cette classe, vous devez utiliser des thèmes Theme.AppCompat pour une présentation visuelle cohérente.
  • Fragment : fournit une implémentation autonome de la classe Fragment du framework. Cette classe doit être utilisée avec FragmentActivity.
  • ContextCompat : prend en charge les fonctionnalités introduites dans les versions plus récentes de la classe Context, y compris la prise en charge des autorisations, l'accès aux fichiers et les informations sur les couleurs.
  • IntentCompat : prend en charge les fonctionnalités introduites dans les versions plus récentes de la classe Intent, y compris les méthodes de sélection et de démarrage d'activités spécifiques.
  • Loader : fournit une implémentation statique de la classe Loader du framework. Il s'agit de la classe de base des classes de support AsyncTaskLoader et CursorLoader.
  • Preference : cette classe et ses sous-classes fournissent des implémentations de l'interface utilisateur des paramètres d'application de manière rétrocompatible.
  • ContentResolverCompat : prend en charge les fonctionnalités introduites dans les versions plus récentes de la classe ContentResolver, en particulier la méthode query(), qui permet d'annuler une requête en cours.

Interface utilisateur

Ces classes de bibliothèque Support fournissent des implémentations de widgets et de comportements clés d'interface utilisateur, et vous aident à créer des interfaces d'application plus modernes sur des appareils plus anciens. Certains de ces widgets ne sont disponibles que via la bibliothèque Support.

Conteneurs de mise en page à usage général

Ces classes d'assistance fournissent des conteneurs d'interface utilisateur qui peuvent être adaptés à différents cas d'utilisation de conception.

  • RecyclerView : crée une mise en page permettant d'afficher de longues listes à l'aide d'une stratégie visant à éviter une consommation de mémoire élevée. Cette classe vous permet de créer une vue limitée de la fenêtre dans un ensemble de données plus volumineux, ce qui évite de consommer une grande quantité de mémoire lors de l'affichage de la liste. Pour en savoir plus sur l'utilisation de RecyclerView, consultez le guide Recycler View.
  • ViewPager : fournit une mise en page qui permet à l'utilisateur de parcourir les pages de données vers la gauche et la droite.
  • GridLayout : fournit une mise en page avec ses enfants dans une grille rectangulaire, acceptant les étendues arbitraires de cellules contiguës et une distribution d'espace flexible. Cette classe fournit une version rétrocompatible de la classe GridLayout, introduite dans Android 4.0 (niveau d'API 14).
  • PercentFrameLayout et PercentRelativeLayout : fournissez des mises en page compatibles avec les dimensions et les marges basées sur un pourcentage pour ses vues et contenus enfants.

Remarque:Les classes ViewPager, RecyclerView, PercentFrameLayout et PercentRelativeLayout ne sont disponibles qu'à partir des bibliothèques Support.

Conteneurs de mise en page à usage spécifique

Ces classes de support fournissent des implémentations compatibles de modèles de mise en page spécifiques, tels que des vues de panneau pouvant être extraites à partir du bord de l'écran, des panneaux coulissants et des listes imbriquées dans des listes.

  • DrawerLayout : crée une mise en page qui permet d'extraire des vues de panneau interactives du bord de la fenêtre d'affichage.
  • SlidingPaneLayout : fournit une mise en page horizontale à plusieurs volets au niveau supérieur de l'interface utilisateur d'une application. Elle permet de créer des mises en page qui s'adaptent facilement à de nombreuses tailles d'écran différentes, qui se développent sur des écrans plus grands et qui se replient pour s'adapter aux écrans plus petits.
  • NestedScrollView : mise en page à défilement qui prend en charge l'imbrication d'autres vues déroulantes, ce qui vous permet de créer des listes, avec des éléments contenant des listes enfants supplémentaires. Ces listes imbriquées peuvent contenir des éléments qui défilent horizontalement ou verticalement, indépendamment de la liste parente.
  • SwipeRefreshLayout : fournit une mise en page permettant d'actualiser les données des listes ou d'autres mises en page par un geste de balayage.

Vues, boîtes de dialogue et widgets

Les bibliothèques Support fournissent un certain nombre de classes pour afficher du contenu et fournir des éléments d'interaction utilisateur dans une mise en page.

  • CardView : classe personnalisée de la bibliothèque Support permettant de créer des cartes d'affichage de style Material Design. Cette classe est basée sur FrameLayout avec des angles arrondis et une ombre projetée.
  • AppCompatDialogFragment : fournit des boîtes de dialogue stylisées de manière cohérente en étendant DialogFragment et en utilisant AppCompatDialog.
  • NotificationCompat : compatible avec les styles de notifications plus récents, ce qui permet d'assurer la rétrocompatibilité.
  • SearchView : fournit une classe permettant à l'utilisateur de saisir une requête de recherche et d'envoyer une requête à un moteur de recherche, destinée principalement à être utilisée dans une barre d'application.

Material Design

Les bibliothèques Support fournissent un certain nombre de classes permettant d'implémenter les recommandations de l'interface utilisateur Material Design.

  • CoordinatorLayout : fournit un conteneur de premier niveau pour les mises en page intégrant des composants et un comportement Material Design. Cette classe peut également être utilisée comme conteneur pour une interaction spécifique avec une ou plusieurs vues enfants.
  • AppBarLayout : implémente de nombreuses fonctionnalités de défilement du concept de barre d'application de Material Design.
  • FloatingActionButton : crée un bouton flottant pour afficher un type spécial d'action promue. Cet élément d'interface utilisateur Material Design est représenté par une icône entourée d'un cercle flottant au-dessus de l'interface utilisateur de l'application. Pour en savoir plus, consultez l'article Ajouter un bouton d'action flottant.
  • DrawerLayout : crée un panneau de navigation, c'est-à-dire un panneau d'interface utilisateur qui affiche le menu de navigation principal de votre application. Elle s'affiche lorsque l'utilisateur balaie l'écran depuis le bord gauche de l'écran ou appuie sur l'icône de panneau dans la barre d'application. Pour en savoir plus, consultez la section Créer un panneau de navigation.
  • TabLayout : fournit une mise en page pour afficher les pages à onglets. Ce widget est conçu pour être utilisé avec la classe ViewPager.
  • Snackbar : fournit un widget permettant d'afficher des commentaires légers sur une opération à l'aide de la fenêtre pop-up "snackbar".

Graphismes

Le package android.support.graphics.drawable est compatible avec les drawables vectoriels. À l'aide de drawables vectoriels, vous pouvez remplacer plusieurs éléments PNG par un seul graphique vectoriel, défini en XML.

VectorDrawableCompat est compatible avec les drawables vectoriels à partir du niveau d'API 9. AnimatedVectorDrawableCompat est compatible avec les drawables vectoriels animés à partir du niveau d'API 11.

Accessibilité

Le package android.support.v4.view.accessibility fournit des classes de compatibilité pour implémenter des fonctionnalités d'accessibilité introduites à partir du niveau d'API 14. Elles permettent aux services d'accessibilité d'observer et d'identifier les interactions de l'utilisateur avec les éléments affichés à l'écran.

  • ExploreByTouchHelper : offre une prise en charge de l'accessibilité dans une View personnalisée qui représente une collection d'éléments logiques semblables à des vues.

Lecture des contenus multimédias

La bibliothèque Android Support fournit un rétroportage de la fonctionnalité de routeur multimédia aux appareils exécutant des versions de la plate-forme antérieures à Android 4.1 (niveau d'API 16). Ces classes permettent de contrôler la lecture des contenus multimédias sur les appareils Android connectés:

  • MediaRouter : permet aux applications de contrôler le routage des canaux multimédias et des flux depuis l'appareil actuel vers les enceintes externes et les appareils de destination.
  • MediaControllerCompat : permet à une application d'interagir avec une session multimédia en cours. Les applications peuvent fournir des boutons de commandes multimédias via ce mécanisme et envoyer d'autres commandes de lecture à la session.
  • MediaSessionCompat : fournit une interface de télécommande pour la lecture de contenus multimédias, permettant d'interagir avec les contrôleurs multimédias, les touches de volume, les boutons multimédias et les commandes de transport dans d'autres applications ou sur des appareils distincts.

Applis TV

Le SDK Android fournit des bibliothèques compatibles avec les facteurs de forme tels que les grands écrans et les contrôleurs associés. Une application peut dépendre de la bibliothèque Support appropriée pour fournir des fonctionnalités sur un large éventail de versions de plate-forme, et peut fournir du contenu sur des écrans externes, des haut-parleurs et d'autres appareils de destination.

Applications Wear

Le SDK Android fournit des bibliothèques pour les montres. Ces bibliothèques fournissent aux applications des fonctionnalités accessibles aux utilisateurs chaque fois qu'ils portent une montre.

Utilitaires

La bibliothèque Android Support offre un certain nombre de fonctionnalités qui ne sont pas intégrées au framework. Ces bibliothèques proposent toute une gamme d'utilitaires que les applications peuvent utiliser.