tv
androidx.tv.foundation
androidx.tv.foundation.lazy.grid
androidx.tv.foundation.lazy.list
androidx.tv.material3
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
1er mai 2024 | - | - | 1.0.0-beta01 | - |
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-alpha10" implementation "androidx.tv:tv-material:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.tv:tv-foundation:1.0.0-alpha10") implementation("androidx.tv:tv-material:1.0.0-beta01") }
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.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Aucune note de version pour cet artefact.
TV-Material version 1.0
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
- Mise à jour de
ColorScheme
et de ses fonctions utilitaires, désormais stables. (If34fa). - Mise à jour de
LocalContentColor
, 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)
- Mise à jour du composant Icon, désormais stable. (I62c2d)
- L'API
LocalTextStyles
est désormais stable. (Iaded8) - L'API
MaterialTheme
est désormais stable. (I2f541) - Mise à jour du composant Text, désormais stable. (Ib9e31)
- Le composant
RadioButton
est désormais stable. (Ia03c8) - Reclassement du composant Switch, désormais stable. (I6cea3)
- Les composants
Checkbox
sont désormais stables. (I7eafc) - Les composants de surface sont désormais stables. (I58758, I04aca)
- Changement de nom :
NonInteractiveSurfaceDefaults
devientSurfaceDefaults
etNonInteractiveSurfaceColors
devientSurfaceColors
. (I0812e) - Mise à jour des surfaces sélectionnables, qui utilisent désormais la terminologie "select" au lieu de "check", car elles ont toutes deux une signification sémantique différente. (I5a206)
- Mise à jour de
NavigationDrawer
etNavigationDrawerScope
, 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
etWideButton
sont désormais stables. (Ib4de8) - Les composants
Card
,ClassicCard
,CompactCard
,WideClassicCard
,StandardCardContainer
etWideCardContainer
sont désormais stables. (I34390) - Changement de nom :
StandardCardLayout
devientStandardCardContainer
etWideCardLayout
devientWideCardContainer
. (I08883) - Suppression de
CardContainerDefaults.ImageCard
et changement de nom deCardDefaults.ContainerGradient
enCardDefaults.ScrimBrush
. (I6adfe) Vous pouvez utiliserCard
à la place deCardContainerDefaults.ImageCard
dans vos conteneurs de cartes. - Mise à jour de
ListItem
etDenseListItem
, désormais stables. (Idebd9) ListItemDefaults.ListItemShape
,ListItemDefaults.FocusedDisabledBorder
etListItemDefaults.SelectedContainerColorOpacity
sont désormais privés. (I5d533)- Réorganisation des paramètres de
ListItem
et changement de nom deListItemDefaults.ListItemElevation
enListItemDefaults.TonalElevation
. (Id6841) Le paramètreheadlineContent
a été déplacé en haut du composable. Précédemment, vous pouviez utiliser la syntaxe lambda de fin de Kotlin pour transmettreheadlineContent
. Vous devez maintenant utiliser la syntaxe des paramètres nommés pour fournirheadlineContent
. LocalAbsoluteTonalElevation
est désormais interne. (Ibfc65)- Le composant
ImmersiveList
a été supprimé. Consultez cet exemple pour apprendre à créer le build vous-même. (Id48da). - Les composants tv-material exposant un
MutableInteractionSource
dans leur API ont été mis à jour pour exposer unMutableInteractionSource
pouvant avoir une valeur nulle dont la valeur par défaut est nulle. Il n'y a aucun changement sémantique ici: transmettre la valeur "null" signifie que vous ne souhaitez pas hisserMutableInteractionSource
, et il sera créé dans le composant si nécessaire. Définir la valeur sur "null" permet à certains composants de ne jamais allouer deMutableInteractionSource
et permet à d'autres composants de ne créer une instance que lorsqu'ils en ont besoin, ce qui améliore les performances de ces composants. Si vous n'utilisez pas leMutableInteractionSource
que vous transmettez à ces composants, nous vous recommandons de transmettre plutôt la valeur "null". Il est également recommandé d'apporter des modifications similaires dans vos propres composants. (I309b4, b/298048146). - Mise à jour du paramètre
TextAlign
du composant TV Text désormais non nul. (Ib73b1, b/299490814) - Introduction d'une valeur spéciale non spécifiée pour les champs
TextAlign
,TextDirection
,Hyphens
etLineBreak
deParagraphTextStyle
à remplacer. (I4197e, b/299490814)
Modifications de comportement
- La valeur par défaut du paramètre
shape
pour leSurface
non interactif a été remplacée parRectangleShape
. (I1b859cb) - Certaines fonctionnalités de carrousel ont été abandonnées pour le lancement bêta en raison du fait que les API nécessaires sont en phase expérimentale. (I0e755d4)
- Suppression de l'animation entre les états de la modification de
contentColor
dansSurface
. (I436e794f)
Version 1.0.0
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 dansNavigationDrawer
etModalNavigationDrawer
. (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
devientNavigationDrawerScope.hasFocus
. (I8286b). - Changement de nom :
TabRowScope.isActivated
devientTabRowScope.hasFocus
. (Ic4273).
Correction de bugs
- Correction de la compatibilité du carrousel avec les éléments adjacents qui utilisent des API de restauration de sélection. (7b2a7a4).
- Désactiver l'indication du halo pour les niveaux d'API_LEVEL inférieurs à 28, car il n'est pas pris en charge par l'OS. (6d3616f).
- Correction du plantage de l'erreur ANR causé par le mauvais placement des éléments dans les conteneurs différés lors du défilement rapide en sens inverse. (642d65c).
- Suppression de la marge intérieure de l'arrière-plan dans le panneau de navigation modale. (69965b2).
- Correction de l'écran dans le panneau de navigation afin qu'il s'affiche au-dessus du contenu d'arrière-plan plutôt que 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 deLazyLayoutItemProvider
, 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 lesAndroidImeOptions
. (Idb772) - Ajout de
rememberCarouselState
pour enregistrerCarouselState
avecSaver
sur TV Compose Material. (Id7275) - Remplacement du paramètre
scrimColor: Color
par le paramètrescrimBrush: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 composableTabRow
avec le composable "Tab" et renommage des propriétésTabColors
. (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
etCarouselScope
. L'animation du contenu en premier plan peut être réalisée dans la diapositive en utilisantModifier.animateEnterExit
depuisAnimatedContentScope
. (Ic038e) - Fusion des paramètres
color
etcontentColor
en un paramètrecolors
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.
- 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
etslideCount
dansCarousel
parCarouselItem
etitemCount
. (Ie554c) - Remplacement du nom de
forward
etbackward
ContentTransforms
parStartToEnd
etEndToStart
. (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
versCarouselSlide
pour correspondre au nom du paramètreslideCount
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 sousandroidx.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
devientimmersiveListItem
. Les utilisateurs devront ajouter manuellement le modificateurfocusable()
ouclickable()
avecimmersiveListItem
. (5dd5078)(b/263061052) - Remplacement du nom
timeToDisplayMillis
parautoScrollDurationMillis
dans le composant Carousel. (431494a) - L'utilisation de
CarouselItem
est désormais limitée auxCarousel
. (431494a) - Le carrousel accepte désormais
ContentTransforms
comme définition d'animation au lieu d'EnterTransition
etExitTransitions
. (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
etTvLazyGridLayoutInfo
. (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 valeurTvLazyRow
vide. (e11b4fe), (b/260299091) - Le modificateur
clickable
fonctionne désormais avecImmersiveList
. (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
etTvLazyVerticalGrid
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 desLazyRows
a de mauvaises performances.