tv

  
Fournit aux développeurs les fonctionnalités Compose et Material Design afin de concevoir des applications pour les téléviseurs
Dernière mise à jour Version stable Version finale Version bêta Version alpha
15 janvier 2025 1.0.0 - - 1.1.0-alpha01

Déclarer des dépendances

Pour ajouter des dépendances sur tv-foundation et tv-material, vous devez ajouter le dépôt Google Maven à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

dependencies {
    implementation "androidx.tv:tv-foundation:1.0.0-alpha11"
    implementation "androidx.tv:tv-material:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.tv:tv-foundation:1.0.0-alpha11")
    implementation("androidx.tv:tv-material:1.0.0")
}

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Aucune note de version pour cet artefact.

Tv-Material version 1.1

Version 1.1.0-alpha01

15 janvier 2025

Publication d'androidx.tv:tv-material:1.1.0-alpha01. La version 1.1.0-alpha01 contient ces commits.

Modifications apportées à l'API

  • Remplacement de FocusEnterExitScope.cancelFocus() par cancelFocusChange(). (I89959)
  • FocusProperties.enter et FocusProperties.exit ont été remplacés respectivement par onEnter et onExit, en utilisant une portée du récepteur au lieu du paramètre FocusDirection. (I6e667)

Correction de bugs

  • CompositingStrategy.OffScreen a été déplacé de Surface vers Text pour corriger le texte saccadé lors de la mise à l'échelle. (I92b15f17)
  • Correction de la gestion de la mise au point dans le carrousel (Ie508b721375)
  • La surface (non interactive) a une implémentation simplifiée par rapport aux surfaces interactives. (I7ea545150)

Tv-Material version 1.0

Version 1.0.0

21 août 2024

Publication d'androidx.tv:tv-material:1.0.0. La version 1.0.0 est la première version stable de androidx.tv:tv-material.

Version 1.0.0-rc02

7 août 2024

Publication d'androidx.tv:tv-material:1.0.0-rc02. La version 1.0.0-rc02 contient ces commits.

Correction de bugs

  • Correction de l'animation de texte saccadée dans le composable Surface. (3163319)

Version 1.0.0-rc01

10 juillet 2024

Publication d'androidx.tv:tv-material:1.0.0-rc01. La version 1.0.0-rc01 contient ces commits.

Version 1.0.0-beta01

1er mai 2024

Publication d'androidx.tv:tv-material:1.0.0-beta01. La version 1.0.0-beta01 contient ces commits.

Modifications apportées à l'API

  • ColorScheme et ses fonctions utilitaires sont désormais stables. (If34fa)
  • LocalContentColor est désormais stable (I60ee2).
  • L'API Typography est désormais stable (I088d6).
  • Les API Shapes sont désormais stables (I0f5f4)
  • L'API Border est désormais stable (I69281)
  • L'API Glow est désormais stable (Iea5f1)
  • Le composant Icône est désormais stable (I62c2d)
  • L'API LocalTextStyles est désormais stable (Iaded8).
  • L'API MaterialTheme est désormais stable (I2f541).
  • Le composant de texte est désormais stable (Ib9e31)
  • Le composant RadioButton est désormais stable (Ia03c8)
  • Le composant Switch est désormais stable (I6cea3)
  • Les composants Checkbox sont désormais stables (I7eafc)
  • Les composants Surface sont désormais stables. (I58758, I04aca)
  • NonInteractiveSurfaceDefaults renommé SurfaceDefaults et NonInteractiveSurfaceColors renommé SurfaceColors (I0812e)
  • La surface sélectionnable utilise désormais le terme "sélectionner" au lieu de "cocher", car ces deux termes ont une sémantique différente. (I5a206)
  • NavigationDrawer et NavigationDrawerScope sont désormais stables. (I249c1)
  • Le composant NavigationDrawerItem est désormais stable (Id6986)
  • Les composants Tab et TabRow sont désormais stables (I92d92)
  • Les composants Button, OutlinedButton, IconButton, OutlinedIconButton et WideButton sont désormais stables (Ib4de8)
  • Les composants Card, ClassicCard, CompactCard, WideClassicCard, StandardCardContainer et WideCardContainer sont désormais stables (I34390)
  • StandardCardLayout renommé StandardCardContainer et WideCardLayout WideCardContainer (I08883)
  • Suppression de CardContainerDefaults.ImageCard et changement de nom de CardDefaults.ContainerGradient en CardDefaults.ScrimBrush (I6adfe). Vous pouvez utiliser Card à la place de CardContainerDefaults.ImageCard dans vos conteneurs de cartes.
  • ListItem et DenseListItem sont désormais stables (Idebd9)
  • ListItemDefaults.ListItemShape, ListItemDefaults.FocusedDisabledBorder et ListItemDefaults.SelectedContainerColorOpacity sont désormais privés (I5d533)
  • Modification de l'ordre des paramètres de ListItem et changement de nom de ListItemDefaults.ListItemElevation en ListItemDefaults.TonalElevation (ID 6841). Le paramètre headlineContent a été déplacé en haut du composable. Auparavant, vous pouviez utiliser la syntaxe lambda finale de Kotlin pour transmettre le headlineContent. Vous devez maintenant utiliser la syntaxe de paramètre nommé pour fournir le headlineContent.
  • LocalAbsoluteTonalElevation est désormais interne (Ibfc65)
  • Le composant ImmersiveList a été supprimé. Consultez cet exemple pour découvrir comment le créer vous-même. (Id48da)
  • Les composants tv-material qui exposent un MutableInteractionSource dans leur API ont été mis à jour pour exposer désormais un MutableInteractionSource nullable dont la valeur par défaut est nulle. Aucune modification sémantique n'est apportée ici: transmettre la valeur null signifie que vous ne souhaitez pas hisser l'MutableInteractionSource, et il sera créé dans le composant si nécessaire. La valeur nulle permet à certains composants de n'allouer jamais de MutableInteractionSource et à d'autres de ne créer une instance que de manière paresseuse lorsqu'ils en ont besoin, ce qui améliore les performances de ces composants. Si vous n'utilisez pas le MutableInteractionSource que vous transmettez à ces composants, nous vous recommandons de transmettre la valeur nulle à la place. Nous vous recommandons également d'apporter des modifications similaires dans vos propres composants. (I309b4, b/298048146)
  • Le paramètre TextAlign du composant de texte pour TV n'est plus nul (Ib73b1, b/299490814)
  • Ajout d'une valeur "Non spécifié" spéciale pour les champs TextAlign, TextDirection, Hyphens et LineBreak de ParagraphTextStyle à remplacer (I4197e, b/299490814)

Modifications de comportement

  • La valeur par défaut du paramètre shape pour les Surface non interactifs a été remplacée par RectangleShape. (I1b859cb)
  • Certaines fonctionnalités du carrousel ont été supprimées pour le lancement de la version bêta, car les API nécessaires sont expérimentales. (I0e755d4)
  • Le changement de contentColor dans Surface n'anime plus les transitions entre les états (I436e794f)

Version 1.0.0

Version 1.0.0-alpha12

15 janvier 2025

Publication d'androidx.tv:tv-foundation:1.0.0-alpha12. La version 1.0.0-alpha12 contient ces commits.

Modifications apportées à l'API

  • Nettoyage des mises en page paresseuses de tv-foundation. Consultez les notes de version 1.0.0-alpha11 pour migrer vers des mises en page lazy tv-foundation. (I2fdd3, b/358913893)

Version 1.0.0-alpha11

10 juillet 2024

Publication d'androidx.tv:tv-foundation:1.0.0-alpha11. La version 1.0.0-alpha11 contient ces commits.

Modifications apportées à l'API

  • Les mises en page lentes TV ont été abandonnées de la bibliothèque tv-foundation. Consultez cette demande pour découvrir comment abandonner les mises en page lazy TV. (I0855f, b/332674072)
  • PlatformImeOptions est désormais une classe concrète et non plus une interface. (If40a4)

Version 1.0.0-alpha10

4 octobre 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha10 et d'androidx.tv:tv-material:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10

Nouvelles fonctionnalités

  • Introduction de NavigationDrawerItem à utiliser dans NavigationDrawer et ModalNavigationDrawer. (I4b491)
  • Ajout d'un profil de référence à la bibliothèque tv-foundation. (2b57fd7)
  • Ajout d'un profil de référence à la bibliothèque tv-material. (1711ff5)

Modifications apportées à l'API

  • Changement de nom : NavigationDrawerScope.doesTabRowHaveFocus devient NavigationDrawerScope.hasFocus. (I8286b)
  • Changement de nom : TabRowScope.isActivated devient TabRowScope.hasFocus. (Ic4273)

Correction de bugs

  • Correction de la compatibilité du carrousel avec les éléments adjacents qui utilisent des API de restauration du focus. (7b2a7a4)
  • Désactivation de l'indication de lueur pour API_LEVEL inférieur à 28, car elle n'est pas compatible avec l'OS. (6d3616f)
  • Correction du plantage ANR causé par un emplacement incorrect des éléments dans les conteneurs paresseux lors d'un défilement rapide dans le sens inverse. (642d65c)
  • Suppression de la marge intérieure de l'arrière-plan dans le panneau de navigation modal. (69965b2)
  • Correction du masquage dans le panneau de navigation pour qu'il soit dessiné au-dessus du contenu de l'arrière-plan au lieu de derrière. (d4bbefb)

Version 1.0.0-alpha09

6 septembre 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha09 et d'androidx.tv:tv-material:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09

Modifications apportées à l'API

  • Ajout de l'interface ReusableComposition pour gérer le cycle de vie et la réutilisation des sous-compositions. (I812d1, b/252846775)
  • Synchronisation de la duplication tv-foundation avec compose-foundation. (I737c3, b/287011882)
  • Ajout de la surcharge LazyLayout, qui accepte un lambda de LazyLayoutItemProvider, qui n'est plus un objet brut comme auparavant. La surcharge précédente est obsolète. (I42a5a)
  • Ajout de TvKeyboardAlignment pour permettre au développeur de configurer la position du clavier via les AndroidImeOptions. (Idb772)
  • Ajout de rememberCarouselState pour enregistrer CarouselState avec Saver sur TV Compose Material. (Id7275)
  • Remplacement du paramètre scrimColor: Color par le paramètre scrimBrush:Brush pour permettre aux utilisateurs d'ajouter des dégradés sur le fond. (I254d4)

Version 1.0.0-alpha08

26 juillet 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha08 et d'androidx.tv:tv-material:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08

Nouvelles fonctionnalités

  • Introductions des composants Chip à Compose pour TV Material. (I86da4)
  • Ajout du composant ListItem à TV Compose Material. (I3f0b3)
  • Ajout du composant DenseListItem à TV Compose Material. (I536bf)

Modifications apportées à l'API

  • Les API tv-material publiques sont marquées comme étant au stade expérimental. (I632e7)
  • Introduction de TabRowScope pour partager l'état du composable TabRow avec le composable "Tab" et renommage des propriétés TabColors. (Ief587)

Version 1.0.0-alpha07

7 juin 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha07 et d'androidx.tv:tv-material:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07

Modifications apportées à l'API

  • Les indications d'échelle des composants comprennent désormais la mention "Aucun" pour désactiver la mise à l'échelle. (I50df5)
  • Ajout de la prise en charge du clic long pour les surfaces, cartes et boutons TV Material (Id2b89)
  • Suppression de CarouselItem et CarouselScope. L'animation du contenu en premier plan peut être réalisée dans la diapositive en utilisant Modifier.animateEnterExit depuis AnimatedContentScope. (Ic038e)
  • Fusion des paramètres color et contentColor en un paramètre colors pour les surfaces TV Material. (Ie69eb)
  • Introduction du composable RadioButton dans TV Material. (I08690)
  • Introduction du composable Switch dans TV Material. (I45e29)
  • Introduction du composable Checkbox dans TV Material. (I6a45a)
  • Introduction des surfaces non interactives à TV Material. (Ic5f85)
  • Les indications sont à présent internes. (Ibff82)

Version 1.0.0-alpha06

19 avril 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha06 et d'androidx.tv:tv-material:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06

Nouvelles fonctionnalités

  • Ajout des implémentations de cartes Material 3 optimisées pour les téléviseurs.
    • Carte basique (I5b701)
    • ClassicCard, CompactCard et WideClassicCard (I70471)
    • StandardCardLayout et WideCardLayout (I33fae)
  • Ajout des implémentations de boutons Material 3 optimisées pour les téléviseurs.

Modifications apportées à l'API

  • Remplacement du nom de CarouselSlide et slideCount dans Carousel par CarouselItem et itemCount. (Ie554c)
  • Remplacement du nom de forward et backward ContentTransforms par StartToEnd et EndToStart. (Ie554c)

Correction de bugs

  • Prise en charge du bouton "Retour" pour NavigationDrawer. (d654f4)

Version 1.0.0-alpha05

22 mars 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha05 et d'androidx.tv:tv-material:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05

Modifications apportées à l'API

  • Introduction du composable "Side Navigation Drawer" à tv-material. Pour apprendre à utiliser ce composable, veuillez consulter les exemples. (I12c08)
  • Introduction du composable "Icon" à TV Material 3 (I72db9)
  • Introduction du composable "Surface" à tv-material avec des indications telles que "Border", "Glow" et "Scale" qui peuvent être utilisées pour créer des composants qui mettent en évidence l'élément souhaité sur l'écran de télévision. (I4a6d8), (Iceea1), (Iee4d4), (I79edf), (Icb376)
  • Mise à jour de CarouselItem vers CarouselSlide pour correspondre au nom du paramètre slideCount dans l'API "Carousel" (Ic4299)

Version 1.0.0-alpha04

8 février 2023

Publication d'androidx.tv:tv-foundation:1.0.0-alpha04 et d'androidx.tv:tv-material:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04

Nouvelles fonctionnalités

  • Dans les lignes, les colonnes et les grilles inactives, le tableau croisé dynamique est remplacé, si nécessaire, pour que l'intégralité de l'élément soit affichée. (11d7e40)
  • Ajout de la personnalisation de la couleur des onglets selon les états. (21b2925)
  • Le carrousel accepte désormais les animations personnalisées pour le défilement manuel avant et arrière. (431494a)

Modifications apportées à l'API

  • androidx.tv.material est renommé androidx.tv.material3, et la structure de package a été aplatie sous androidx.tv.material3. (I6ca52)
  • L'indicateur situé dans la ligne de l'indicateur de carrousel est désormais un emplacement que le développeur peut personnaliser. (268af2a)
  • Changement de nom : focusableItem devient immersiveListItem. Les utilisateurs devront ajouter manuellement le modificateur focusable() ou clickable() avec immersiveListItem. (5dd5078)(b/263061052)
  • Remplacement du nom timeToDisplayMillis par autoScrollDurationMillis dans le composant Carousel. (431494a)
  • L'utilisation de CarouselItem est désormais limitée aux Carousel. (431494a)
  • Le carrousel accepte désormais ContentTransforms comme définition d'animation au lieu d'EnterTransition et ExitTransitions. (431494a)
  • Introduction de l'API PinnableContainer propagée par des listes différées via une composition locale qui permet d'épingler l'élément actuel. (Ib8881, b/259274257, b/195049010)
  • Ajout de la propriété mainAxisItemSpacing à TvLazyListLayoutInfo et TvLazyGridLayoutInfo. (I37765)

Correction de bugs

  • Mise à jour de la ligne d'onglets pour vous assurer qu'elle gère correctement le nombre d'onglets (0 ou 1). (I44009), (1c01525), (b/264018028)
  • Résolution du problème de plantage de la recherche ciblée lorsque TvLazyColumn contient une valeur TvLazyRow vide. (e11b4fe), (b/260299091)
  • Le modificateur clickable fonctionne désormais avec ImmersiveList. (5dd5078), (b/263061052)
  • La touche Retour est maintenant gérée et utilisée pour quitter le carrousel de promotion de contenus. (84c138c)
  • Le carrousel n'abandonne pas la sélection en cas de plusieurs appuis rapides sur les touches. (799489f)
  • Le carrousel n'abandonne pas la sélection en cas d'appui de manière prolongée sur les touches. (b2cf37e)
  • Résolution des plantages qui avaient lieu lors de la modification du nombre de diapositives du carrousel. (b261247)

Version 1.0.0-alpha03

7 décembre 2022

Publication d'androidx.tv:tv-foundation:1.0.0-alpha03 et d'androidx.tv:tv-material:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Nouvelles fonctionnalités

  • TabRow est désormais disponible en tant qu'API expérimentale, et permet aux utilisateurs d'ajouter des barres de navigation supérieures à leurs applications. En général, les téléviseurs s'attendent à ce que les onglets se chargent lorsque leur titre est sélectionné dans la ligne d'onglets.
  • Des indicateurs spécifiques aux téléviseurs, tels que le soulignement et la forme de pilule, sont fournis par défaut. Vous trouverez des exemples d'utilisation dans tv-samples.

Version 1.0.0-alpha02

9 novembre 2022

Publication d'androidx.tv:tv-foundation:1.0.0-alpha02 et d'androidx.tv:tv-material:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02

Correction de bugs

  • Amélioration des performances de défilement lors du défilement d'une collection de TvLazyRows/TvLazyColumns en réduisant l'espace de recherche ciblé. (I723a3)

Version 1.0.0-alpha01

5 octobre 2022

Publication d'androidx.tv:tv-foundation:1.0.0-alpha01 et d'androidx.tv:tv-material:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Nouvelles fonctionnalités

La première version alpha contient des implémentations en preview anticipée de composants pour des cas d'utilisation TV, y compris :

  • Ajout du modificateur scrollableWithPivot pour permettre aux conteneurs défilants non différés tels que "Ligne", "Colonne" ou "Grille" de faire défiler le contenu, de sorte que l'élément sélectionné reste à la même position sur l'écran du téléviseur
  • Ajout des composables TvLazyRow, TvLazyColumn, TvLazyHorizontalGrid et TvLazyVerticalGrid pour que le conteneur de défilement fasse défiler le contenu afin que l'élément sélectionné reste à la même position sur l'écran du téléviseur
  • Ajout d'un composable Carrousel de promotion de contenus pour les téléviseurs qui permet à l'utilisateur de créer un carrousel de bannières à défilement automatique
  • Ajout d'un composable de liste immersive pour la télévision qui permet à l'utilisateur de créer une ligne/colonne/grille immersive qui modifie l'arrière-plan en fonction de l'élément de liste sélectionné

Problèmes connus

  • Lorsque le conteneur de défilement est sélectionné, le premier élément n'est pas sélectionné par défaut.
  • Sélectionner un TextField n'ouvre pas toujours le clavier ou peut empêcher la sélection de passer à d'autres champs.
  • Un défilement vertical dans une LazyColumn contenant des LazyRows a de mauvaises performances.