Compose Material
androidx.compose.material
androidx.compose.material.icons
(Consultez la documentation de référence de l'API pour tous les packages Compose.).
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
21 août 2024 | 1.6.8 | 1.7.0-rc01 | - | - |
Structure
Compose est une combinaison de sept ID de groupe Maven dans androidx
, chacun contenant un sous-ensemble ciblé de fonctionnalités. Chaque sous-ensemble est associé à son propre ensemble de notes de version.
Ce tableau décrit les différents groupes et renvoie à chaque ensemble de notes de version.
Groupe | Description |
---|---|
compose.animation | Créer des animations dans les applications Jetpack Compose afin d'enrichir l'expérience utilisateur. |
compose.compiler | Transformation de fonctions @Composable et prise en charge des optimisations avec un plug-in de compilation en Kotlin. |
compose.foundation | Conception d'applications Jetpack Compose avec des composants prêts à l'emploi et extension de la base pour créer vos propres éléments de système de conception. |
compose.material | Création d'UI Jetpack Compose avec des composants Material Design prêts à l'emploi. Il s'agit du point d'entrée de niveau supérieur de Compose, conçu pour fournir des composants qui correspondent à ceux décrits sur www.material.io. |
compose.material3 | Création d'UI Jetpack Compose grâce aux composants Material Design 3, la nouvelle évolution de Material Design. Material 3 inclut des thématisations et des composants mis à jour ainsi que des fonctionnalités de personnalisation Material You telles que les couleurs dynamiques. Material 3 est conçu pour correspondre au nouveau style visuel et à l'UI du système Android 12. |
compose.runtime | Composants fondamentaux du modèle de programmation et de la gestion d'état de Compose, et environnement d'exécution principal du plug-in Compose Compiler à cibler. |
compose.ui | Composants fondamentaux de l'interface utilisateur de Compose nécessaires pour interagir avec l'appareil, y compris la mise en page, le dessin et la saisie. |
Déclarer des dépendances
Pour ajouter une dépendance sur Compose, vous devez ajouter le dépôt Maven de Google à 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.compose.material:material:1.6.8" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.material:material:1.6.8") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
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.
Version 1.7
Version 1.7.0-rc01
21 août 2024
Publication d'androidx.compose.material:material-*:1.7.0-rc01
. La version 1.7.0-rc01 contient ces commits.
Version 1.7.0-beta07
7 août 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta07
. La version 1.7.0-beta07 contient ces commits.
Version 1.7.0-beta06
24 juillet 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta06
. La version 1.7.0-beta06 contient ces commits.
Version 1.7.0-beta05
10 juillet 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta05
. La version 1.7.0-beta05 contient ces commits.
Version 1.7.0-beta04
26 juin 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta04
. La version 1.7.0-beta04 contient ces commits.
Version 1.7.0-beta03
12 juin 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta03
. La version 1.7.0-beta03 contient ces commits.
Version 1.7.0-beta02
29 mai 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta02
. La version 1.7.0-beta02 contient ces commits.
Modifications apportées à l'API
- Mise à jour de l'API pour styliser les liens: déplacement de
TextLinkStyles
versTextStyle
et suppression deTextDefaults
de Material. (I5477b)
Version 1.7.0-beta01
14 mai 2024
Publication d'androidx.compose.material:material-*:1.7.0-beta01
. La version 1.7.0-beta01 contient ces commits.
Modifications apportées à l'API
- Mise à jour de l'API permettant d'obtenir des liens sur le thème Material dans Text. Plus précisément, suppression des méthodes de
TextDefaults
pour créer desLinkAnnotations
thématiques et analyser le code HTML avec des liens thématiques. À la place, nous avons ajouté une classeTextLinkStyles
qui permet de styliser les liens en tant que paramètre du composable Text. (I31b93).
Version 1.7.0-alpha08
1er mai 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha08
. La version 1.7.0-alpha08 contient ces commits.
Modifications apportées à l'API
- Correction de
backgroundColor
qui ne s'applique pas àTextFieldDecorationBox
etOutlinedTextFieldDecorationBox
. Les encadrés de décoration acceptent désormais un paramètreshape
. (I371c2, b/307694651). RippleConfiguration#isEnabled
a été supprimé etLocalRippleConfiguration
peut désormais avoir une valeur nulle. Pour désactiver une ondulation, au lieu de fournir unRippleConfiguration
avecisEnabled = false
, fournisseznull
àLocalRippleConfiguration
. (I22725).- Les liens textuels disposent d'une option de style en mode "Pressé" en plus du style normal, survolé et sélectionné. Les méthodes
TextDefaults
comportent chacune un argumentpressedStyle
compatible. (Ic473f, b/139312671).
Correction de bugs
- La marge intérieure supérieure de
OutlinedTextField
pour le libellé tient désormais compte de la taille de la police système. (Idc781).
Version 1.7.0-alpha07
17 avril 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha07
. La version 1.7.0-alpha07 contient ces commits.
Modifications apportées à l'API
- L'option de style "En appuyant sur les liens de texte" est disponible en plus du style normal. (I5f864, b/139312671).
- Ajout d'un objet
TextDefaults
contenant des méthodes pour construire uneLinkAnnotation
et analyser la chaîne taguée HTML qui appliqueMaterialTheme
aux liens. (I98532, b/139312671).
Version 1.7.0-alpha06
3 avril 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha06
. La version 1.7.0-alpha06 contient ces commits.
Annonce
androidx.compose.material
n'a plus besoin d'utiliser la même version de chaque artefact (ce groupe Maven). Les utilisateurs peuvent combiner des versions des bibliothèques de base Compose. (Ie5fba)
Modifications apportées à l'API
- Déplacement d'autres valeurs par défaut
ModalDrawer
etBottomDrawer
dans l'objetDrawerDefaults
. (Ib5b2e).
Version 1.7.0-alpha05
20 mars 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha05
. La version 1.7.0-alpha05 contient ces commits.
Modifications apportées à l'API
- L'indicateur
ScaffoldSubcomposeInMeasureFix
a été supprimé. (I67363).
Version 1.7.0-alpha04
6 mars 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha04
. La version 1.7.0-alpha04 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'un artefact
androidx.compose.material:material-navigation
qui permet d'utiliser des bottom sheets comme destinations lorsque vous utilisez Navigation Compose. Cela remplace la bibliothèque Accompanist Navigation Material. (d65d57, b/180247978).
Version 1.7.0-alpha03
21 février 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha03
. Liste des commits de la version 1.7.0-alpha03
Modifications apportées à l'API
BottomDrawer
est passé de "expérimental" à "stable".BottomDrawerState
expose désormais la progression en tant que fonction, ce qui permet d'interroger la progression entre des cibles spécifiques.BottomDrawerState
permet désormais de personnaliser la spécification de l'animation, etconfirmStateChange
n'est plus un lambda de fin. (I9c029, b/261423850).BackdropScaffold
est passé de "expérimental" à "stable". La spécification d'animation est désormais une spécificationtween
, conformément aux consignes. Le paramètresnackbarHost
deBackdropScaffold
n'est plus le dernier paramètre pour éviter toute confusion avec les lambdas de fin.BackdropScaffoldState
expose une APIprogress(from, to)
pour interroger la progression entre les ancres. (I73f48, b/261423218).- Les bottom sheets standards sont passées de "expérimental" à "stable". Suppression des constructeurs obsolètes. La spécification d'animation est désormais une spécification d'interpolation conformément aux consignes. (I3c1a8, b/278692145, b/261409034).
- Les bottom sheets modales sont passées de expérimentales à stables. Suppression des constructeurs obsolètes. La spécification d'animation est désormais une spécification
tween
, conformément aux consignes. (Ic53f4, b/278692145, b/266780235, b/261409034).
Correction de bugs
- Correction d'un problème qui provoquait le plantage de
BackdropScaffold
dans des scénarios spécifiques en combinaison avecLookaheadScope
. (I51396). - Suppression de la sous-composition dans
BottomSheetScaffold
pour améliorer les performances. Correction d'un problème qui provoquait le plantage deBottomSheetScaffold
dans des scénarios spécifiques en combinaison avecLookaheadScope
. (I2f90c). - Suppression de la sous-composition dans
ModalBottomSheetLayout
, ce qui améliore les performances. (I7a025).
Version 1.7.0-alpha02
7 février 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha02
. Liste des commits de la version 1.7.0-alpha02
Version 1.7.0-alpha01
24 janvier 2024
Publication d'androidx.compose.material:material-*:1.7.0-alpha01
. Liste des commits de la version 1.7.0-alpha01
Nouveaux comportements
- Les composants Material ont été migrés pour utiliser les nouvelles API d'ondulation et n'interrogent plus
RippleTheme
.
Modifications apportées à l'API
rememberRipple
etRippleTheme
ont été abandonnés dans l'ondulation de Material, avec de nouvelles API d'ondulation et deRippleConfiguration
ajoutées à Material et à d'autres bibliothèques de systèmes de conception.Les composants Material qui acceptaient une
MutableInteractionSource
et se souvenaient par défaut de{ MutableInteractionSource() }
acceptent désormais uneMutableInteractionSource
pouvant avoir une valeur nulle et sont remplacées par la valeur null par défaut. Si vous n'effectuez pas de hissage et n'utilisez pasMutableInteractionSource
, vous devez transmettre la valeur nulle. Cela permet à certains composants de créer une instance de manière différée uniquement en cas de besoin, ce qui améliore les performances. Nous vous recommandons également d'apporter les mêmes modifications à vos propres composants.
Version 1.6
Version 1.6.8
12 juin 2024
Publication d'androidx.compose.material:material-*:1.6.8
. La version 1.6.8 contient ces commits.
Version 1.6.7
1er mai 2024
Publication d'androidx.compose.material:material-*:1.6.7
. La version 1.6.7 contient ces commits.
Version 1.6.6
17 avril 2024
Publication d'androidx.compose.material:material-*:1.6.6
. Aucune modification depuis la dernière version.
Version 1.6.5
3 avril 2024
Publication d'androidx.compose.material:material-*:1.6.5
. La version 1.6.5 contient ces commits.
Version 1.6.4
20 mars 2024
Publication d'androidx.compose.material:material-*:1.6.4
. La version 1.6.4 contient ces commits.
Version 1.6.3
6 mars 2024
Publication d'androidx.compose.material:material-*:1.6.3
. La version 1.6.3 contient ces commits.
Correction de bugs
- Correction de la régression dans
ExposedDropdownMenu
pour le rendre à nouveau sélectionnable. (c0e0ed, b/323694447).
Version 1.6.2
21 février 2024
Publication d'androidx.compose.material:material-*:1.6.2
. Liste des commits de la version 1.6.2
Version 1.6.1
7 février 2024
Publication d'androidx.compose.material:material-*:1.6.1
. Liste des commits de la version 1.6.1
Version 1.6.0
24 janvier 2024
Publication d'androidx.compose.material:material-*:1.6.0
. Liste des commits de la version 1.6.0
Version 1.6.0-rc01
10 janvier 2024
Publication d'androidx.compose.material:material-*:1.6.0-rc01
. Liste des commits de la version 1.6.0-rc01
Version 1.6.0-beta03
13 décembre 2023
Publication d'androidx.compose.material:material-*:1.6.0-beta03
. Liste des commits de la version 1.6.0-beta03
Version 1.6.0-beta02
29 novembre 2023
Publication d'androidx.compose.material:material-*:1.6.0-beta02
. Liste des commits de la version 1.6.0-beta02
Version 1.6.0-beta01
15 novembre 2023
Publication d'androidx.compose.material:material-*:1.6.0-beta01
. Liste des commits de la version 1.6.0-beta01
Version 1.6.0-alpha08
18 octobre 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha08
. Liste des commits de la version 1.6.0-alpha08
Modifications apportées à l'API
- Abandon d'une fonction
materialIcon
au profit de sa surcharge qui accepte un paramètreautoMirror
. (Ia338d).
Correction de bugs - Augmentation automatique de la hauteur de l'élément de navigation pour les contenus de grande taille (0c4ecc, b/272336962).
Version 1.6.0-alpha07
4 octobre 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha07
. Liste des commits de la version 1.6.0-alpha07
- Mises à jour des dépendances
Version 1.6.0-alpha06
20 septembre 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha06
. Liste des commits de la version 1.6.0-alpha06
Modification destructive affectant le comportement
- Suppression des fonctionnalités de panneau de
BottomSheetScaffold
. Encapsulez votreBottomSheetScaffold
dans un composable Drawer pour obtenir la fonctionnalité précédente. ConsultezBottomSheetScaffoldWithDrawerSample
pour obtenir un exemple. (I1dcc8).
Modifications apportées à l'API
- Introduction d'un indicateur temporaire pour contrôler si Scaffold doit mesurer ses enfants pendant la mesure ou le placement. Par défaut, ces données sont mesurées. Si vous rencontrez des problèmes avec le nouveau comportement, veuillez signaler un problème. (If6e3b).
Version 1.6.0-alpha05
6 septembre 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha05
. Liste des commits de la version 1.6.0-alpha05
Nouvelles fonctionnalités
- Ajout de la prise en charge de la mise en miroir automatique des icônes pour les mises en page de droite à gauche. Les icônes des modules Material-icons-core et material-icons-extended fournissent désormais des jeux d'icônes supplémentaires pour permettre la mise en miroir automatique lorsque l'icône le permet. Les nouveaux ensembles sont précédés de
Icons.AutoMirrored.Filled...
, etc. et contiennent des icônes qui seront automatiquement mises en miroir sur les mises en page de droite à gauche. Consultez la liste des icônes Material pour connaître les icônes qui peuvent (et doivent) être mises en miroir automatiquement.
Modifications apportées à l'API
- Ajout de la prise en charge de la mise en miroir automatique des icônes pour les mises en page de droite à gauche. Les icônes des modules Material-icons-core et material-icons-extended fournissent désormais des jeux d'icônes supplémentaires pour permettre la mise en miroir automatique lorsque l'icône le permet. Les nouveaux ensembles sont précédés de
Icons.AutoMirrored.Filled...
, etc. et contiennent des icônes qui seront automatiquement mises en miroir sur les mises en page de droite à gauche. Consultez la liste des icônes Material pour connaître les icônes qui peuvent (et doivent) être mises en miroir automatiquement. Les propriétés d'icônes précédemment fournies pour ces icônes sont désormais marquées comme obsolètes et fournissent une suggestion de blocage de remplacement pour faciliter la migration. Si vous n'avez pas besoin de suivre une procédure particulière pour mettre en miroir les icônes sur les langues RTL, nous vous recommandons de migrer vers le nouvel ensemble d'icônes. Par exemple,Icons.Filled.ArrowBack
doit être refactorisé enIcons.AutoMirrored.Filled.ArrowBack
. (I4b511).
Version 1.6.0-alpha04
23 août 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha04
. Liste des commits de la version 1.6.0-alpha04
Correction de bugs
- Correction d'un problème où certains composants utilisant
Subcomposition
(par exemple,BottomSheetScaffold
) dans un échafaudage dans unLookaheadScope
tentaient de lire leur taille trop tôt. (If2c5d). - Correction du calcul
offset
deDropdownMenu
afin que les décalages X dépendent uniquement de la direction de la mise en page locale. Les décalages Y ne sont plus inversés lorsque le menu se trouve en bas de l'écran. (Iccc74, b/294103942). - Optimisation des éléments internes de mise en page de
BottomSheetScaffold
et correction d'un problème potentiel lié àBottomSheetScaffold
dans unLookaheadLayout
. (Ic0afa).
Version 1.6.0-alpha03
9 août 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha03
. Liste des commits de la version 1.6.0-alpha03
Modifications apportées à l'API
- Les composants Material2 disposent désormais d'une API distincte pour transmettre
windowInsets
afin de prendre en charge les fonctionnalités bord à bord dans Android. Contrairement aux composants Material 3, les composants Material 2 ne sont pas compatibles avec les encarts par défaut et la valeur doit être transmise manuellement. Pour en savoir plus, consultez les exemples correspondants. (I655e8).
Version 1.6.0-alpha02
26 juillet 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha02
. Liste des commits de la version 1.6.0-alpha02
Modifications apportées à l'API
- Nous déplaçons la dépendance de la densité au niveau du composant. Cela s'applique aux composants suivants:
SwipeToDismiss
et aux composants basés sur une feuille de calcul Sheets. Veuillez utiliser la nouvelle surcharge fournie lorsque la densité est un paramètre. (I1846e). - Annotations supplémentaires pour spécifier les entrées autorisées pour les composables. (I51109)
- Mise à jour des fichiers API pour annoter la suppression de la compatibilité. (I8e87a, b/287516207)
- Ajout d'un nouvel alignement de démarrage pour
FabPosition
. (Ib7aea, b/170592777) - Abandon de
TextFieldColorsWithIcons
dans Material 2 au profit deTextFieldColors
. Lorsque vous remplacezleadingIconColor
outrailingIconColor
, remplacez également la surcharge avecinteractionSource
. (Id57ed, b/199377790).
Version 1.6.0-alpha01
21 juin 2023
Publication d'androidx.compose.material:material-*:1.6.0-alpha01
. Liste des commits de la version 1.6.0-alpha01
Nouveaux comportements
includeFontPadding
est désormaisfalse
par défaut dans la typographie Material 2. Le style de hauteur de ligne par défaut a également été remplacé parTrim.None
etAlignment.Center
, et deslineHeight
explicites (dans les sp) ont été ajoutés auxTextStyle
deTypography
. Consultez la documentation de l'API si vous souhaitez personnaliser ces valeurs, ainsi que l'article de blog pour une explication détaillée de ces modifications. (Icabc3, I3f801, I04c03).
Modifications apportées à l'API
- Les API
Swipeable
de Material sont obsolètes. Veuillez consulter les APIAnchoredDraggable
de Foundation, qui sont optimisées pour les cas d'utilisation simples et complexes. (I732e0).
Correction de bugs
BottomSheetState
,ModalBottomSheetState
etBottomDrawerState
exposent désormais une propriété de progression indiquant la progression entre l'ancre actuelle (définie) et l'ancre la plus proche dans la direction du balayage. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Version 1.5
Version 1.5.4
18 octobre 2023
Publication d'androidx.compose.material:material-*:1.5.4
. Liste des commits de la version 1.5.4
Version 1.5.3
4 octobre 2023
Publication d'androidx.compose.material:material-*:1.5.3
. Cette version n'a pas été modifiée
Version 1.5.2
27 septembre 2023
Publication d'androidx.compose.material:material-*:1.5.2
. Liste des commits de la version 1.5.2
Version 1.5.1
6 septembre 2023
Publication d'androidx.compose.material:material-*:1.5.1
sans aucune modification. Liste des commits de la version 1.5.1
Version 1.5.0
9 août 2023
Publication d'androidx.compose.material:material-*:1.5.0
. Liste des commits de la version 1.5.0
Changements importants depuis la version 1.4.0
Modifications apportées à l'API
- Modifications apportées aux API Swipeable1 dans
BottomSheetScaffold
. Le paramètreconfirmStateChange
deBottomSheetState
a été renomméconfirmValueChange
.progress
est désormais exposé en tant que valeur flottante.animateTo
etsnapTo
sont internes. Utilisezexpand()
etcollapse()
à la place. Suppression dedirection
etoverflow
.offset
a été remplacé parrequireOffset()
. I323b4 - Marquage de la fonction
snapTo
dans Drawer en tant qu'API non expérimentale. (Ib9c18, b/261425368) - Ajout d'un paramètre de couleur de suivi pour les indicateurs de progression circulaires, et d'un paramètre de limite de trait pour les indicateurs de progression circulaires et linéaires. (Ie668c, b/216325962, b/222964817)
- Changement de nom : le paramètre
confirmStateChange
deModalBottomSheetState
,ModalBottomSheetState.Saver
etrememberModalBottomSheetState
devientconfirmValueChange
. (Ib48d1) - Ajout de
Modifier.minimumInteractiveComponentSize
. Vous pouvez l'utiliser pour réserver une taille d'au moins 48 dp pour résoudre les problèmes d'interaction tactile si l'élément est plus petit. (I33f58, b/258495559) - Modifications apportées aux API Swipeable dans
ModalBottomSheetLayout
. Le paramètre animateTo deModalBottomSheetState
n'accepte plus de paramètreanimationSpec
et le décalage exposé peut désormais avoir une valeur nulle. UtilisezrequireOffset
pour exiger le décalage. (Ia2e79). - Ajout de l'annotation
@JvmDefaultWithCompatibility
. (I8f206) - Les modifications incorporées dans les API à faire glisser dans le
animateTo
deModalDrawer. DrawerState
ont été remplacées par les méthodes d'ouverture et de fermeture, et le décalage peut désormais avoir une valeur nulle. UtilisezrequireOffset
pour exiger le décalage. (I3de9e). - Mise à jour des panneaux et des feuilles pour retarder les pressions du doigt lorsque les gestes peuvent devenir des événements de défilement.
- Ajout du paramètre
minLines
dans le texte Material et Material3, ainsi queTextField
etOutlinedTextField
, ce qui permet de définir la hauteur minimale du composant en termes de nombre de lignes. (I4af1d)
Correction de bugs
- Correction d'un problème qui entraînait l'affichage d'un défilement hors limites, car
pullRefresh
n'utilisait pas la vélocité. Modification de la signature API du lambdaonRelease
dansModifier.pullRefresh
pour renvoyer une valeur flottante pour la vitesse consommée. (I7db65, b/266874741) BottomSheetState
,ModalBottomSheetState
etBottomDrawerState
exposent désormais une propriété de progression indiquant la progression entre l'ancre actuelle (définie) et l'ancre la plus proche dans la direction du balayage. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)- Correction de l'action "Ignorer"
AlertDialog
qui s'affichait sous l'action de confirmation lorsque les actions étaient empilées les unes sur les autres pour s'adapter à la largeur de la boîte de dialogue. Ce correctif aligne l'implémentation sur la spécification Material Design. (I029de, b/235454277). BottomSheetScaffold
ne participera plus au défilement imbriqué lorsquegesturesEnabled
est défini sur "false". (I634f3, b/215403277).- Correction d'un bug qui provoquait le plantage de
BottomSheetScaffold
lorsqu'il était fourni avec un contenu vide pour les emplacements. (Ib24a5, b/235588730). - Correction de
PullRefreshIndicator
qui interceptait les événements de clic/pointeur. (2494256, b/271777421). - Correction d'un problème qui provoquait le plantage de
ModalBottomSheetLayout
dans un cas particulier lors d'un changement d'orientation. Désormais, les animations de mise en page (par exemple,Modifier.animateContentSize
) dans le contenu de la feuille fonctionnent correctement. (I2f981, b/266780234).
Version 1.5.0-rc01
26 juillet 2023
Publication d'androidx.compose.material:material-*:1.5.0-rc01
. Liste des commits de la version 1.5.0-rc01
Version 1.5.0-beta03
28 juin 2023
Publication d'androidx.compose.material:material-*:1.5.0-beta03
. Liste des commits de la version 1.5.0-beta03
Correction de bugs
BottomSheetState
,ModalBottomSheetState
etBottomDrawerState
exposent désormais une propriété de progression indiquant la progression entre l'ancre actuelle (définie) et l'ancre la plus proche dans la direction du balayage. (I1b317, b/271169225, b/276375124, b/276776071, b/270066861)
Version 1.5.0-beta02
7 juin 2023
Publication d'androidx.compose.material:material-*:1.5.0-beta02
. Liste des commits de la version 1.5.0-beta02
Version 1.5.0-beta01
24 mai 2023
Publication d'androidx.compose.material:material-*:1.5.0-beta01
. Liste des commits de la version 1.5.0-beta01
Modifications apportées à l'API
- Les décalages de
DrawerState
etBottomDrawerState
ne peuvent plus avoir une valeur nulle. À la place, ils renvoientFloat.NaN
pour indiquer l'absence du décalage. (Ie9855). - Ajout d'une option permettant de transmettre un
ScrollState
lors de la construction d'unDropdownMenu
ou d'unExposedDropdownMenu
pour contrôler l'état de défilement vertical des éléments de menu affichés. (Idb009, b/185304441). - Prise en charge de l'activation/de la désactivation du geste de
ModalBottomSheetLayout
afin que l'utilisateur puisse le configurer pour une bottom sheet plus mise en avant. (I40af0) - Ajout d'un paramètre de couleur à
BasicText
pour permettre une animation efficace ou la définition de la couleur du texte. (Iffd88, b/246961787). - Remplacement du nom de la propriété sémantique
isContainer
parisTraversalGroup
. (I121f6)
Correction de bugs
- Correction de l'action "Ignorer"
AlertDialog
qui s'affichait sous l'action de confirmation lorsque les actions étaient empilées les unes sur les autres pour s'adapter à la largeur de la boîte de dialogue. Ce correctif permet d'aligner l'implémentation sur la spécification Material Design. (I029de, b/235454277).
Version 1.5.0-alpha04
10 mai 2023
Publication d'androidx.compose.material:material-*:1.5.0-alpha04
. Liste des commits de la version 1.5.0-alpha04
Modifications apportées à l'API
- Nous déplaçons la dépendance de la densité au niveau du composant. Cela s'applique aux composants suivants:
BottomDrawer
,ModalBottomSheetLayout
,BottomSheetScaffold
,Switch
,ModalDrawer
. Veuillez utiliser la nouvelle surcharge fournie lorsque la densité est un paramètre. (I8fbd8).
Version 1.5.0-alpha03
19 avril 2023
Publication d'androidx.compose.material:material-*:1.5.0-alpha03
. Liste des commits de la version 1.5.0-alpha03
Modifications apportées à l'API
- Mettez à jour les composants internes de
BottomDrawer
pour utiliser les nouvelles APISwipeableV2
. En raison de ce changement,BottomDrawerState
n'aura désormais que des API définies au niveau de la classe et n'héritera pas des méthodes/propriétés deSwipeableState
. Nous utilisons la composition avec unSwipeableV2State
interne. Offset est désormais une propriété à virgule flottante pouvant avoir une valeur nulle. La valeur actuelle et une valeur cible de balayage sont toujours accessibles via les propriétés currentValue et targetValue. Les méthodes précédentes au niveau de la classe, telles que "open/expand/close", ainsi que des propriétés telles queisOpen/isClosed
, restent compatibles. (Iad40c, b/178529942, b/220676296).
Correction de bugs
- Mise à jour des composants internes du composant "Bouton bascule". Le bouton bascule permet désormais de prévisualiser l'élément le plus proche (état cible) lors du déplacement. (Id90d4).
- Le contenu animé de la feuille (par exemple,
Modifier.animateContentSize
sur le contenu de la feuille) dansBottomSheetScaffold
a été optimisé et fonctionne désormais correctement. (Ia913c, b/270518202, b/254446195). BottomSheetScaffold
ne participera plus au défilement imbriqué lorsquegesturesEnabled
est défini surfalse
. (I634f3, b/215403277).
Version 1.5.0-alpha02
5 avril 2023
Publication d'androidx.compose.material:material-*:1.5.0-alpha02
. Liste des commits de la version 1.5.0-alpha02
Correction de bugs
- Correction d'un bug qui provoquait le plantage de
BottomSheetScaffold
lorsqu'il était fourni avec un contenu vide pour les emplacements. (Ib24a5, b/235588730). - Correction de
PullRefreshIndicator
interceptant les clics / événements de pointeur. (2494256, b/271777421)
Version 1.5.0-alpha01
22 mars 2023
Publication d'androidx.compose.material:material-*:1.5.0-alpha01
. Liste des commits de la version 1.5.0-alpha01
Correction de bugs
- Ajoutez un exemple de reflow du groupe de chips. Modifiez la marge intérieure horizontale entre les chips enfants dans l'exemple de groupe de chips à une seule ligne pour qu'elle corresponde à la spécification. (I3b155).
- Correction d'un problème qui provoquait le plantage de
ModalBottomSheetLayout
dans un cas particulier lors d'un changement d'orientation. Désormais, les animations de mise en page (par exemple,Modifier.animateContentSize
) dans le contenu de la feuille fonctionnent correctement. (I2f981, b/266780234).
Version 1.4
Version 1.4.3
3 mai 2023
Publication d'androidx.compose.material:material-*:1.4.3
sans aucune modification (une augmentation de version uniquement).
Version 1.4.2
19 avril 2023
Publication d'androidx.compose.material:material-*:1.4.2
. Liste des commits de la version 1.4.2
Version 1.4.1
5 avril 2023
Publication d'androidx.compose.material:material-*:1.4.1
. Liste des commits de la version 1.4.1
Version 1.4.0
22 mars 2023
Publication d'androidx.compose.material:material-*:1.4.0
. Liste des commits de la version 1.4.0
Changements importants depuis la version 1.3.0
Modifications apportées à l'API
- Ajout de
Modifier.minimumInteractiveComponentSize
. Vous pouvez l'utiliser pour réserver une taille d'au moins 48 dp pour résoudre les problèmes d'interaction tactile si l'élément est plus petit. (I33f58, b/258495559) - Modifications apportées aux API Swipeable dans
ModalDrawer
. LeanimateTo
deDrawerState
a été remplacé par les méthodes d'ouverture et de fermeture, et le décalage peut désormais avoir une valeur nulle. UtilisezrequireOffset
pour exiger le décalage. (I3de9e). - Ajout du paramètre
minLines
dans le texte Material et Material3, ainsi queTextField
etOutlinedTextField
, ce qui permet de définir la hauteur minimale du composant en termes de nombre de lignes. (I4af1d) - Ajout du paramètre
minLines
dansBasicText
etBasicTextField
. Elle permet de définir la hauteur minimale de ces composables en nombre de lignes. (I24294, b/122476634)
Version 1.4.0-rc01
8 mars 2023
Publication d'androidx.compose.material:material-*:1.4.0-rc01
sans aucune modification. Liste des commits de la version 1.4.0-rc01
Version 1.4.0-beta02
22 février 2023
Publication d'androidx.compose.material:material-*:1.4.0-beta02
. Liste des commits de la version 1.4.0-beta02
Modifications apportées à l'API
- Modifications apportées aux API Swipeable dans
BottomSheetScaffold
. Le paramètreconfirmStateChange
deBottomSheetState
a été renomméconfirmValueChange
.progress
est désormais exposé en tant que valeur flottante.animateTo
etsnapTo
sont internes. Utilisezexpand()
etcollapse()
à la place. Suppression dedirection
etoverflow
.offset
a été remplacé parrequireOffset()
. (I323b4).
Correction de bugs
- Suppression des rôles sémantiques des surfaces cliquables et sélectionnables, et mise à jour des composants qui les utilisaient pour définir des rôles à l'aide de modificateur.semantics. (Ibb4ba)
- Mise à jour mineure des icônes Material étendues qui modifie les icônes
desktop_mac
,directions
etkitchen
remplies. (I65f5e).
Version 1.4.0-beta01
8 février 2023
Publication d'androidx.compose.material:material-*:1.4.0-beta01
. Liste des commits de la version 1.4.0-beta01
Modifications apportées à l'API
- Correction d'un problème qui entraînait l'affichage d'un défilement hors limites, car
pullRefresh
n'utilisait pas la vélocité. Modification de la signature API du lambdaonRelease
dansModifier.pullRefresh
pour renvoyer une valeur flottante pour la vitesse consommée. (I7db65, b/266874741) - Le getter
LocalMinimuTouchTargetEnforcement
a été restauré, marqué comme obsolète, puis redirigé versLocalMinimumInteractiveComponentEnforcement
. (I60dd5)
Version 1.4.0-alpha05
25 janvier 2023
Publication d'androidx.compose.material:material-*:1.4.0-alpha05
. Liste des commits de la version 1.4.0-alpha05
Correction de bugs
- Correction d'un problème à cause duquel l'état
ModalBottomSheetLayout's HalfExpanded
n'était pas calculé correctement et la feuille semblait flotter (I8c615, b/265610459) - Correction d'un bug dans
ModalBottomSheetLayout
qui provoquait le plantage de la feuille lorsqu'elle passait d'un état masqué à un état visible dans certains cas (Ia9265, b/265444789)
Version 1.4.0-alpha04
11 janvier 2023
Publication d'androidx.compose.material:material-*:1.4.0-alpha04
. Liste des commits de la version 1.4.0-alpha04
Modifications apportées à l'API
- Ajout à la propriété sémantique
IsContainer
sur les surfaces. Cette propriété sera utilisée lors d'une modification ultérieure qui détermine l'ordre de navigation en fonction de la signification sémantique des éléments tels que les surfaces. (I63379) - Marquage de la fonction
snapTo
dans Drawer en tant qu'API non expérimentale. (Ib9c18, b/261425368) - Ajout d'un paramètre de couleur de suivi pour les indicateurs de progression circulaires, et d'un paramètre de limite de trait pour les indicateurs de progression circulaires et linéaires. (Ie668c, b/216325962, b/222964817)
- Changement de nom : le paramètre
confirmStateChange
deModalBottomSheetState
,ModalBottomSheetState.Saver
etrememberModalBottomSheetState
devientconfirmValueChange
. (Ib48d1) - Possibilité de valeur nulle de type renvoyé accrue pour les fonctions obsolètes ou masquées. (Ibf7b0)
- Ajout de
Modifier.minimumInteractiveComponentSize
. Vous pouvez l'utiliser pour réserver une taille d'au moins 48 dp pour résoudre les problèmes d'interaction tactile si l'élément est plus petit. (I33f58, b/258495559) - Modifications apportées aux API Swipeable dans
ModalBottomSheetLayout
. Le paramètreanimateTo
deModalBottomSheetState
n'accepte plus de paramètreanimationSpec
et leoffset
exposé peut désormais avoir une valeur nulle. UtilisezrequireOffset
pour exigeroffset
. (Ia2e79)
Corrections de bugs
- La largeur maximale d'une feuille de
ModalBottomSheetLayout
est désormais de 640 dp. (I71a4f, b/234927577) - Correction d'un problème qui empêchait
rememberPullRefreshState
de mettre à jourrefreshThreshold
etrefreshingOffset
au fil du temps. (Ifed10, b/263159832) - La progression des indicateurs de progression est désormais correctement limitée à la plage attendue. (I8a7eb, b/262262727)
- Si
ModalBottomSheetState
n'a pas encore reçu d'ancre, lacurrentValue
est mise à jour sans animation lorsquesnapTo
ouanimateTo
est appelé au lieu de générer une exception. (I2c91b) - Correction de l'état activé au niveau de l'implémentation
FilterChip
de Material 2. (Id326a, b/261329817) - Correction d'un bug qui provoquait le plantage de
ModalBottomSheetLayout
si le paramètre étaitHalfExpanded
lors d'une rotation du mode portrait au mode paysage. Veuillez vous assurer que l'initialValue
transmise est correcte, par exemple en vérifiant la configuration. (Ie8df7, b/182882364) - Résolution d'un problème qui provoquait le plantage de
ModalBottomSheetLayout
si le contenu de la feuille était vide.ModalBottomSheetLayout
autorise désormais un contenu de feuille vide. Si la feuille est vide, son état est Hidden (Masqué) (Ic2288, b/200980998, b/216693030)
Problème connu
- Lorsque vous passez de
androidx.compose.foundation:1.4.0-alpha03
àandroidx.compose.foundation:1.4.0-alpha04
, une erreurjava.lang.NoSuchFieldError
peut se produire. Le problème a été initialement signalé ici. Un correctif a été envoyé et sera disponible lors de la prochaine mise à jour de Compose. Pour contourner ce problème, mettez à jour votreandroidx.compose.material
etandroidx.compose.material3
vers la dernière version (1.1.0-alpha04) ou revenez à la version 1.4.0-alpha03 deandroidx.compose.foundation
.
Version 1.4.0-alpha03
7 décembre 2022
Publication d'androidx.compose.material:material-*:1.4.0-alpha03
. Liste des commits de la version 1.4.0-alpha03
Modifications apportées à l'API
- Ajout de l'annotation
@JvmDefaultWithCompatibility
. (I8f206) - Modifications apportées aux API
Swipeable
dansModalDrawer
.animateTo
deDrawerState
a été remplacé par les méthodesopen
etclose
, et le décalage peut désormais être nul. UtilisezrequireOffset
pour exiger le décalage. (I3de9e) - Ajout d'une API de modificateur pour interroger les informations de défilement des ancêtres. (I2ba9d, b/203141462)
- Utilisation dans
Clickable
pour retarder correctement les interactions liées à une pression du doigt susceptible de devenir un événement de défilement. - Correction de
Clickables
qui ne retardait pas correctement les ondulations en cas d'utilisation dans unScrollable ViewGroup
. - Mise à jour des panneaux et des feuilles pour retarder les pressions du doigt lorsque les gestes peuvent devenir des événements de défilement.
Correction de bugs
- Correction d'un problème qui pouvait bloquer
PullRefreshIndicator
après l'appel d'onRefresh
si l'état d'actualisation n'était pas défini sur "true". (Ie2416, b/248274004)
Mises à jour des dépendances
- Mise à jour de Compose UI et Compose Material, qui dépendent désormais de Lifecycle 2.5.1. (I05ab0, b/258038814)
Version 1.4.0-alpha02
9 novembre 2022
Publication d'androidx.compose.material:material-*:1.4.0-alpha02
. Liste des commits de la version 1.4.0-alpha02
Modifications apportées à l'API
awaitFirstDown
etwaitForUpOrCancellation
acceptent désormaisPointerEventPass
pour plus de flexibilité. (I7579a, b/212091796)- Ajout du paramètre
minLines
dans le texte Material et Material3, ainsi queTextField
etOutlinedTextField
, ce qui permet de définir la hauteur minimale du composant en termes de nombre de lignes. (I4af1d) - Ajout du paramètre
minLines
àBasicTex
t etBasicTextField
. Permet de définir la hauteur minimale de ces composables en nombre de lignes. (I24294, b/122476634)
Version 1.4.0-alpha01
24 octobre 2022
Publication d'androidx.compose.material:material-*:1.4.0-alpha01
. Liste des commits de la version 1.4.0-alpha01
Modifications apportées à l'API
- Une nouvelle méthode,
awaitEachGesture()
, a été ajoutée pour les détecteurs de gestes. Son fonctionnement est semblable à celui deforEachGesture()
, mais la lecture en boucle des gestes fonctionne entièrement dansAwaitPointerEventScope
, de sorte que les événements ne peuvent pas être perdus entre les itérations. forEachGesture()
a été abandonné au profit deawaitEachGesture()
, car il permet la perte d'événements entre deux gestes. (Iffc3f, b/251260206)
Version 1.3
Version 1.3.1
9 novembre 2022
Publication d'androidx.compose.material:material-*:1.3.1
. Liste des commits de la version 1.3.1
Version 1.3.0
24 octobre 2022
Publication d'androidx.compose.material:material-*:1.3.0
. Liste des commits de la version 1.3.0
Changements importants depuis la version 1.2.0
Modification destructive affectant le comportement
- L'élévation maximale prise en charge dans les boîtes de dialogue et les fenêtres pop-up a été réduite à 8 dp.
Modifications apportées à l'API
- Ajout d'un composant Pull-to-Refresh à Compose. (I29168)
- Remplacement du nom de paramètre "values" par "value" dans RangeSlider. (I3b79a)
Version 1.3.0-rc01
5 octobre 2022
Publication d'androidx.compose.material:material-*:1.3.0-rc01
. Liste des commits de la version 1.3.0-rc01
Version 1.3.0-beta03
21 septembre 2022
Publication d'androidx.compose.material:material-*:1.3.0-beta03
. Liste des commits de la version 1.3.0-beta03
Modifications apportées à l'API
- Ajout d'un composant Pull-to-Refresh à Compose. (I29168)
Version 1.3.0-beta02
7 septembre 2022
Publication d'androidx.compose.material:material-*:1.3.0-beta02
. Liste des commits de la version 1.3.0-beta02
Aucune modification depuis la version 1.3.0-beta01
Version 1.3.0-beta01
24 août 2022
Publication d'androidx.compose.material:material-*:1.3.0-beta01
. Liste des commits de la version 1.3.0-beta01
Modification destructive affectant le comportement
L'élévation maximale prise en charge dans les boîtes de dialogue et les fenêtres pop-up a été réduite à 8 dp.
L'élévation maximale prise en charge pour les boîtes de dialogue et les fenêtres pop-up de Compose a été réduite de 30 dp à 8 dp. Ce changement affecte les boîtes de dialogue et les fenêtres pop-up personnalisées Material et UI. Cette modification vise à atténuer un bug d'accessibilité sur les versions antérieures à Android S, et à s'assurer que les services d'accessibilité de ces fenêtres peuvent interagir avec le contenu de la boîte de dialogue ou de la fenêtre pop-up.
Vous ne serez concerné par ce changement que si vous créez une boîte de dialogue ou une fenêtre pop-up personnalisée avec une élévation définie sur des niveaux supérieurs à 8 dp. Le cas échéant, envisagez de réduire l'élévation de la boîte de dialogue ou de la fenêtre pop-up. Si vous avez besoin de désactiver ce nouveau comportement, vous pouvez dupliquer votre propre boîte de dialogue ou votre fenêtre pop-up avec l'élévation souhaitée. Cette approche n'est pas recommandée, car elle peut avoir un impact négatif sur l'accessibilité. C'est au développeur qu'il incombe de s'assurer que les services d'accessibilité peuvent lire et interagir avec la partie inférieure de la boîte de dialogue ou de la fenêtre pop-up.
Version 1.3.0-alpha03
10 août 2022
Publication d'androidx.compose.material:material-*:1.3.0-alpha03
. Liste des commits de la version 1.3.0-alpha03
Version 1.3.0-alpha02
27 juillet 2022
Publication d'androidx.compose.material:material-*:1.3.0-alpha02
. Liste des commits de la version 1.3.0-alpha02
Contribution externe
- Résolution du problème de
AnimatedVisibility
avecFloatingActionButton
dans Scaffold (I3a0ae, b/224005027)
Version 1.3.0-alpha01
29 juin 2022
Publication d'androidx.compose.material:material-*:1.3.0-alpha01
. Liste des commits de la version 1.3.0-alpha01
Modifications apportées à l'API
- Remplacement du nom de paramètre "values" par "value" dans
RangeSlider
. (I3b79a)
Corrections de bugs
- Mise à jour de l'exemple de badge pour fournir une description de contenu plus pertinente. (I10b9d)
Version 1.2
Version 1.2.1
10 août 2022
Publication d'androidx.compose.material:material-*:1.2.1
. Liste des commits de la version 1.2.1
Version 1.2.0
27 juillet 2022
Publication d'androidx.compose.material:material-*:1.2.0
. Liste des commits de la version 1.2.0
Version 1.2.0-rc03
29 juin 2022
Publication d'androidx.compose.material:material-*:1.2.0-rc03
. Liste des commits de la version 1.2.0-rc03
- Aucune modification depuis la version 1.2.0-rc02
Version 1.2.0-rc02
22 juin 2022
Publication d'androidx.compose.material:material-*:1.2.0-rc02
. Liste des commits de la version 1.2.0-rc02
Version 1.2.0-rc01
15 juin 2022
Publication d'androidx.compose.material:material-*:1.2.0-rc01
. Liste des commits de la version 1.2.0-rc01
Modifications apportées à l'API
- Mise à jour des interfaces dans les bibliothèques Compose, désormais créées à l'aide des méthodes d'interface jdk8 par défaut. (I5bcf1)
Corrections de bugs
- Mise à jour du badge avec le premier onglet d'icônes pour associer le badge au libellé au lieu de l'icône. (I90993)
Version 1.2.0-beta03
1er juin 2022
Publication d'androidx.compose.material:material-*:1.2.0-beta03
. Liste des commits de la version 1.2.0-beta03
Corrections de bugs
- Correction d'un bug à cause duquel
BottomSheetScaffold
dessinait sur l'ombre de la barre d'application supérieure.BottomSheetScaffold
tient désormais compte de l'état de la feuille lorsqu'il place des snackbars : réduits, les snackbars sont placés au-dessus de la feuille et du bouton d'action flottant. Développés, les snackbars sont ancrés au bas de la feuille. (Ia80b5, b/187771422)
Version 1.2.0-beta02
18 mai 2022
Publication d'androidx.compose.material:material-*:1.2.0-beta02
. Liste des commits de la version 1.2.0-beta02
Version 1.2.0-beta01
11 mai 2022
Publication d'androidx.compose.material:material-*:1.2.0-beta01
. Liste des commits de la version 1.2.0-beta01
Nouvelles fonctionnalités
- Première publication bêta de la version 1.2.
Modifications apportées à l'API
- Remplacement du nom du composable
TextFieldDefaults.BorderStroke
permettant de tracer un trait de bordure dansOutlinedTextField
parTextFieldDefaults.BorderBox
. (I5f295)
Version 1.2.0-alpha08
20 avril 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha08
. Liste des commits de la version 1.2.0-alpha08
Modifications apportées à l'API
- Abandon de la consommation partielle (position OR vers le bas) dans
PointerInputChange
. Vous pouvez utiliserconsume()
pour consommer complètement le changement. Vous pouvez utiliserisConsumed
pour déterminer si le changement a déjà été consommé par un tiers. - Mise à jour de
PointerInputChange::copy()
, qui crée désormais toujours une copie superficielle. Autrement dit, les copies dePointerInputChange
seront consommées une fois que l'une des copies aura été consommée. Si vous souhaitez créer unPointerInputChange
non associé, utilisez plutôt le constructeur. (Ie6be4, b/225669674)
Version 1.2.0-alpha07
6 avril 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha07
. Liste des commits de la version 1.2.0-alpha07
Version 1.2.0-alpha06
23 mars 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha06
. Liste des commits de la version 1.2.0-alpha06
Modifications apportées à l'API
- Mises à jour de l'API Card cliquable pour suivre les modifications apportées à l'API Surface (I56bcb)
- Mises à jour de l'API Material 2 Surface qui ajoutent des fonctions surchargées pour les surfaces sélectionnables et activables. (Ifcca5)
Version 1.2.0-alpha05
9 mars 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha05
. Liste des commits de la version 1.2.0-alpha05
Modifications apportées à l'API
- Mise à jour de
LazyVerticalGrid
etLazyHorizontalGrid
, désormais considérés comme stables. (I307c0) LazyVerticalGrid/LazyHorizontalGrid
et des API associées ont été déplacées dans le sous-package .grid. Mettez à jour vos importations d'androidx.compose.foundation.lazy à androidx.compose.foundation.lazy.grid. (I2d446, b/219942574)- Annulation d'une modification précédente qui consistait à ne dépendre que d'une vue pour
WindowInsetsControllerCompat
, et à exiger de nouveau une fenêtre pour gérer certains indicateurs de fenêtre.ViewCompat.getWindowInsetsController
a été abandonné au profit deWindowCompat.getInsetsController
pour garantir l'utilisation de la bonne fenêtre (par exemple, si la vue se trouve dans une boîte de dialogue) (I660ae, b/219572936) - Texte : mise à jour de
includeFontPadding
, désormais désactivé par défaut. Correction des problèmes de rognage causés parincludeFontPadding=false
. Les scripts de grande taille ne devraient plus être rognés. (I31c84, b/171394808) - Ajout d'une API
LazyVerticalGrid
permettant de définir les tailles de l'axe transversal. (I17723)
Version 1.2.0-alpha04
23 février 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha04
. Liste des commits de la version 1.2.0-alpha04
Modifications apportées à l'API
Add support for filter chips
(I39a6e, b/192585545)- Ajout de
TextFieldDecorationBox
et deOutlinedTextFieldDecorationBox
. En les combinant avecBasicTextField
, vous pouvez créer un champ de texte personnalisé basé sur des champs de texte Material Design, mais avec davantage d'options de personnalisation. - Ajout de l'ajustement des marges intérieures horizontales et verticales dans les champs de texte. (I8c9f1, b/203764564, b/191543915, b/189971673, b/183136600, b/179882597, b/168003617)
Ajout de
ComposableTarget
,ComposableTargetMarker
etComposableOpenTarget
pour signaler au moment de la compilation qu'une fonction modulable s'applique à la mauvaise cible.La plupart du temps, les annotations peuvent être déduites du plug-in de compilation Compose. Elles sont donc rarement utilisées directement. Il est impossible de déduire les annotations dans les cas suivants : lors de la création et de l'utilisation d'un applicateur personnalisé, de fonctions modulables abstraites (telles que les méthodes d'interface), de champs ou de variables globales qui sont des lambdas modulables (les variables locales et les paramètres sont déduits), ou lorsque vous utilisez
ComposeNode
ou une fonction modulable associée.Pour les applicateurs personnalisés, les fonctions modulables qui appellent
ComposeNode
ouReusableComposeNode
doivent ajouter une annotationCompoableTarget
pour la fonction et un type de paramètre lambda de composable. Il est toutefois recommandé de créer une annotation marquée avecComposableTargetMarker
, puis d'utiliser l'annotation marquée plutôt que d'utiliser directementComposableTarget
. Une annotation composable marquée avecComposableTargetMarker
équivaut à unComposbleTarget
avec le nom complet de la classe d'attribut en tant que paramètre d'applicateur. Pour obtenir un exemple d'utilisation deComposableTargetMarker
, reportez-vous àanroidx.compose.ui.UiComposable
. (I38f11)
Version 1.2.0-alpha03
9 février 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha03
. Liste des commits de la version 1.2.0-alpha03
Corrections de bugs
- Ajout d'un échantillon de groupe de chip (I97080, b/192585545)
Version 1.2.0-alpha02
26 janvier 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha02
. Liste des commits de la version 1.2.0-alpha02
Modifications apportées à l'API
- Ajout de
NonRestartableComposable
aux méthodes correspondant à des surcharges de méthodes existantes sans logique complexe. Cela réduit le nombre de vérifications (d'égalité) de la mémorisation générées par le compilateur pour tous les paramètres répétés dans la fonction interne appelée. (I90490) - Ajout de la compatibilité avec le chip d'action (I07100, b/192585545)
Version 1.2.0-alpha01
12 janvier 2022
Publication d'androidx.compose.material:material-*:1.2.0-alpha01
. Liste des commits de la version 1.2.0-alpha01
Mises à jour des dépendances
- Mise à jour des dépendances vers Kotlin
1.6.10
.
Contribution externe
ModalBottomSheetState
comporte désormais un indicateurisSkipHalfExpanded
. Il peut être défini via le constructeur ou mis à jour ultérieurement en définissant la propriétéisSkipHalfExpanded
deModalBottomSheetState
surtrue
. La mise à jour de la valeur deisSkipHalfExpanded
entraîne une recomposition de la feuille. (I18b86, b/186669820)
Version 1.1
Version 1.1.1
23 février 2022
Publication d'androidx.compose.material:material-*:1.1.1
. Liste des commits de la version 1.1.1
Correction de bugs
- Correction d'une exception
NullPointerException
dansandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
. (aosp/1947059, b/206677462) - Correction du plantage causé par le contenu du presse-papiers lors de la lecture du presse-papiers sur Android. (I06020, b/197769306)
- Résolution du problème de lecture de droite à gauche dans
LazyVerticalGrid
. (aosp/1931080, b/207510535)
Version 1.1.0
9 février 2022
Publication d'androidx.compose.material:material-*:1.1.0
. Liste des commits de la version 1.1.0
Modifications importantes depuis la version 1.0.0
- Stabilisation de la prise en charge du défilement hors limites d'Android 12.
- Améliorations apportées au dimensionnement des zones cibles tactiles.
- Notez que, dans Compose 1.0, les composants Material développent leur espace de mise en page pour respecter les consignes d'accessibilité Material concernant la taille des zones cibles tactiles. Par exemple, la zone cible tactile minimale d'un bouton est de 48 × 48 dp, et sera étendue si le paramètre indique une dimension inférieure. Cela permet d'aligner la bibliothèque Compose Material sur le comportement des composants Material Design, pour plus de cohérence si vous combinez le système de vues et Compose. Cette modification garantit également que les conditions minimales requises pour l'accessibilité des zones cibles tactiles sont remplies lorsque vous créez votre UI à l'aide de composants Compose Material.
- Stabilisation de la prise en charge du rail de navigation.
- Reclassement d'un certain nombre d'API expérimentales en version stable.
- Prise en charge des nouvelles versions de Kotlin.
Version 1.1.0-rc03
26 janvier 2022
Publication d'androidx.compose.material:material-*:1.1.0-rc03
. Liste des commits de la version 1.1.0-rc03
Modifications de comportement
Notez que, dans Compose 1.0, les composants Material développent leur espace de mise en page pour respecter les consignes d'accessibilité Material concernant la taille des zones cibles tactiles. Par exemple, la zone cible tactile minimale d'un bouton est de 48 × 48 dp, et sera étendue si le paramètre indique une dimension inférieure. Cela permet d'aligner la bibliothèque Compose Material sur le comportement des composants Material Design, pour plus de cohérence si vous combinez le système de vues et Compose. Cette modification garantit également que les conditions minimales requises pour l'accessibilité des zones cibles tactiles sont remplies lorsque vous créez votre UI à l'aide de composants Compose Material.
Corrections de bugs
- Ajout de meilleures informations de débogage pour l'outil d'inspection de la mise en page lors de l'inspection des modificateurs de la zone cible tactile minimale. (aosp/1955036)
Version 1.1.0-rc01
15 décembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-rc01
. Liste des commits de la version 1.1.0-rc01
Corrections de bugs
- Correction de l'arrondi d'angle appliqué aux
Checkbox
es (I38b03, b/175198975, b/202309440)
Version 1.1.0-beta04
1er décembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-beta04
. Liste des commits de la version 1.1.0-beta04
Nouvelles fonctionnalités
- Mise à jour pour assurer la compatibilité avec Kotlin
1.6.0
Version 1.1.0-beta03
17 novembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-beta03
. Liste des commits de la version 1.1.0-beta03
Version 1.1.0-beta02
3 novembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-beta02
. Liste des commits de la version 1.1.0-beta02
Corrections de bugs
- Correction des ondulations et des autres indications qui étaient toujours retardées pour un événement "vers le bas". Désormais, elles le seront seulement si elles se trouvent dans un conteneur Modifier.scrollable(). (Ibefe0, b/203141462)
Version 1.1.0-beta01
27 octobre 2021
Publication d'androidx.compose.material:material-*:1.1.0-beta01
. Liste des commits de la version 1.1.0-beta01
Nouvelles fonctionnalités
- Désormais, les ondulations prennent en charge les états Survoler et Placer le curseur. Ainsi, ces actions sur un composant (par exemple un bouton) afficheront maintenant la superposition d'état pertinente.
Version 1.1.0-alpha06
13 octobre 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha06
. Liste des commits de la version 1.1.0-alpha06
Modifications apportées à l'API
- Ajout d'une surcharge sans enfant pour Layout, pour gagner en efficacité. (Ib0d9a)
- Implémentation du menu
ExposedDropdownMenu
basé surExposedDropdownMenuBox
avecTextField
etDropdownMenu
(If60b2) dismissOnOutsideClick
a été ajouté àPopupProperties
pour remplacerdismissOnClickOutside
, qui était obsolète. La nouvelle propriété reçoit la position du clic et les limites de l'ancrage, ce qui permet de contrôler plus précisément si onDismissRequest doit être appelé ou non. Par exemple, cela peut être utile pour éviter que des touches dans l'ancrage soient ignorées.- Ajout de
updateAndroidWindowManagerFlags
auxPopupProperties
, permettant de contrôler de niveau inférieur les indicateurs transmis par le pop-up à Android WindowManager. Les indicateurs calculés à partir des valeurs PopupProperties, qui génèrent des indicateurs WindowManager tels que "focusable", serviront de paramètre au lambda. Le résultat du lambda sera les indicateurs finaux qui seront transmis à Android WindowManager. Par défaut, updateAndroidWindowManagerFlags ne modifie pas les indicateurs calculés à partir des paramètres. Utilisez cette API avec précaution, uniquement si votre pop-up doit répondre à des exigences de comportement très spécifiques. (I6e9f9)
- Ajout de
Version 1.1.0-alpha05
29 septembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha05
. Liste des commits de la version 1.1.0-alpha05
Modifications apportées à l'API
- Ajout d'une taille minimale de zone cible tactile pour les composants Material qui n'ont pas de zone cible tactile accessible. Dans la mesure où cette mise à jour ajoute un espace supplémentaire autour des composants pour s'assurer qu'ils ont une zone cible tactile suffisamment grande, les interfaces utilisateur existantes peuvent être modifiées, notamment si elles considèrent que la taille de ces composants correspond à leur taille visuelle et ne tiennent pas compte de la taille des zones cibles tactiles. Vous pouvez utiliser la composition
LocalMinimumTouchTargetEnforcement
expérimentale en local pour désactiver ce comportement dans une hiérarchie, mais il s'agit uniquement d'un mécanisme de secours temporaire lorsque vous mettez à jour des interfaces utilisateur existantes pour tenir compte de la nouvelle taille minimale. (I9b966, b/149691127, b/171509422) - Ajout d'une interface expérimentale TextFieldColorsWithIcons qui développe TextFieldColors afin de fournir une InteractionSource aux classes leadingColor et trailingColor. Cela permet de modifier l'apparence de TextField en fonction de l'état de sélection. (I66923, b/198402662)
Version 1.1.0-alpha04
15 septembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha04
. Liste des commits de la version 1.1.0-alpha04
Modifications apportées à l'API
- Abandon de
performGesture
etGestureScope
, remplacés parperformTouchInput
etTouchInjectionScope
. (Ia5f3f, b/190493367) - Ajout de
touchBoundsInRoot
àSemanticsNode
, qui inclut la taille minimale des zones cibles tactiles afin que les développeurs puissent s'assurer que ces dernières respectent les valeurs minimales d'accessibilité. (I2e14b, b/197751214)
Corrections de bugs
- Prise en charge de l'extension des limites de la zone cible tactile au-delà de la zone de bornement pour satisfaire aux exigences de dimensions minimales des zones cibles tactiles. (I43e10, b/171509422)
- Mise à jour du composable
Divider
en fonction deDp.Hairline
pour le paramètre d'épaisseur afin de permettre le traçage de séparateurs à un seul pixel, quelle que soit la densité d'affichage. (I16ffb, b/196840810)
Version 1.1.0-alpha03
1er septembre 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha03
. Liste des commits de la version 1.1.0-alpha03
Nouvelles fonctionnalités
- Mise à jour des dépendances Compose
1.1.0-alpha03
vers Kotlin1.5.30
. (I74545)
Modifications apportées à l'API
- Ajout d'une méthode de test pour obtenir les limites rognées. (I6b28e)
- Ajout d'une taille minimale aux zones cibles tactiles dans ViewConfiguration, pour garantir l'accessibilité lorsque des entrées pointeur ou sémantiques sont utilisées. (Ie861c)
Version 1.1.0-alpha02
18 août 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha02
. Liste des commits de la version 1.1.0-alpha02
Contribution externe
- Correction du comportement de SwipeableState lorsque le décalage de balayage se situe dans une erreur d'arrondi d'une ancre. (I03d39, b/191993377)
Version 1.1.0-alpha01
4 août 2021
Publication d'androidx.compose.material:material-*:1.1.0-alpha01
. Liste des commits de la version 1.1.0-alpha01
Modifications apportées à l'API
- Mise à jour de la méthode
DrawScope#drawImage
, qui consomme désormais les rectangles source et de destination pour consommer un paramètre FilterQuality facultatif. Cette méthode est utile pour afficher les éléments de style pixel art, conçus pour paraître pixélisés lorsqu'ils sont agrandis. Mise à jour du composable BitmapPainter + Image, afin de consommer également un paramètre FilterQuality facultatif. (Ie4fb0, b/180311607) - BadgeBox a été renommé BadgedBox, et les paramètres ont été modifiés pour accepter le composable Badge. Ajout d'un composant badge qui correspond au contenu typique d'une BadgedBox. (I639c6)
- Ajout du composant NavigationRail. Consultez la documentation et les exemples pour obtenir des informations sur son utilisation (I8de77).
Corrections de bugs
- Ajout d'un exemple d'un NavigationRail aligné en bas d'une page et d'une démo d'application de catalogue. (I3cffc)
- Mise à jour des boîtes de dialogue, qui suivent désormais le comportement de dimensionnement de plate-forme. Définissez usePlatformDefaultWidth sur "false" pour désactiver ce comportement. (Iffaed, b/192682388)
- Ajout d'une démo navigation-rail à l'application de catalogue. (I04960)
- Ajout d'une démo badge à l'application de catalogue. (If285D)
Version 1.0
Version 1.0.5
3 novembre 2021
Publication d'androidx.compose.material:material-*:1.0.5
. Liste des commits de la version 1.0.5
Correction de bugs
- Correction d'un plantage lié au suivi des instances de derivedStateOf. (aosp/1792247)
Version 1.0.4
13 octobre 2021
Publication d'androidx.compose.material:material-*:1.0.4
. Liste des commits de la version 1.0.4
Mises à jour des dépendances
- Mise à jour des dépendances vers Kotlin
1.5.31
Version 1.0.3
29 septembre 2021
Publication d'androidx.compose.material:material-*:1.0.3
. Liste des commits de la version 1.0.3
Mises à jour des dépendances
- Mise à jour des dépendances vers Kotlin
1.5.30
Version 1.0.2
1er septembre 2021
Publication d'androidx.compose.material:material-*:1.0.2
. Liste des commits de la version 1.0.2
Mise à jour pour prendre en charge la version 1.0.2
de Compose. Compose 1.0.2
reste compatible avec Kotlin 1.5.21
.
Version 1.0.1
4 août 2021
Publication d'androidx.compose.material:material-*:1.0.1
. Liste des commits de la version 1.0.1
Mises à jour des dépendances
- Mise à jour des dépendances vers Kotlin
1.5.21
Version 1.0.0
28 juillet 2021
Publication d'androidx.compose.material:material-*:1.0.0
. Liste des commits de la version 1.0.0
Principales fonctionnalités de la version 1.0.0
Première version stable de Compose. Pour en savoir plus, consultez le blog officiel des publications de Compose.
Problèmes connus
Si vous utilisez Android Studio Bumblebee Canary 4 ou AGP
7.1.0-alpha04
/7.1.0-alpha05
, vous risquez de rencontrer le plantage suivant :java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Pour résoudre ce problème, augmentez temporairement la valeur minSdkVersion à 24 ou au-delà dans votre fichier
build.gradle
. Ce problème sera résolu dans la prochaine version d'Android Studio Bumblebee et AGP7.1
. (b/194289155)
Version 1.0.0-rc02
14 juillet 2021
Publication d'androidx.compose.material:material-*:1.0.0-rc02
. Liste des commits de la version 1.0.0-rc02
Corrections de bugs
- Mise à jour des boîtes de dialogue, qui suivent désormais le comportement de dimensionnement de plate-forme. Définissez
usePlatformDefaultWidth
sur "false" pour désactiver ce comportement. (Iffaed, b/192682388)
Version 1.0.0-rc01
1er juillet 2021
Publication d'androidx.compose.material:material-*:1.0.0-rc01
. Liste des commits de la version 1.0.0-rc01
Modifications apportées à l'API
- Ajout du composant
BadgeBox
. Consultez la documentation et les exemples pour obtenir des informations sur l'utilisation. (I5e284) - Changement de nom : dans
PopupProperties
,useDefaultMaxWidth
devientusePlatformDefaultWidth
. (I05710) - Mise à jour des boîtes de dialogue, qui peuvent désormais utiliser toute la largeur de l'écran. (I83929, b/190810877)
- Ajout de la fonctionnalité expérimentale de curseur de plage (I2f4b3)
Corrections de bugs
- Afin de respecter les spécifications de Material Design d'OutlinedTextField avec une entrée non valide, nous avons cessé d'utiliser une couleur d'erreur pour le libellé lorsque celui-ci est utilisé comme espace réservé. Ceci est vrai lorsqu'il n'y a pas de texte d'entrée dans le champ de texte et que celui-ci n'est pas sélectionné. Avec cette modification, la signification du paramètre
error:Boolean
dans la fonctionTextFieldColors.labelColor()
a également changé : la valeurfalse
est désormais renvoyée même si l'entrée n'est pas valide si le libellé est utilisé comme espace réservé. (I45f78)
Version 1.0.0-beta09
16 juin 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta09
. Liste des commits de la version 1.0.0-beta09
Modifications apportées à l'API
- Ajout du paramètre Shape à OutlinedTextField pour pouvoir personnaliser la forme de la bordure (I8f39e, b/181322957)
- Conversion de TextOverflow en classe inline. (I433af)
Corrections de bugs
- L'écran dans BottomDrawer, BackdropScaffold et ModalBottomSheetLayout disparait, puis transmission de la couleur Color.Unspecified (I2d899, b/182063309)
Nouvelles règles de profil
Cette version ajoute des règles de profil aux modules de composition suivants. (I14ed6)
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
Que sont les règles de profil ?
Les règles de profil d'une bibliothèque sont spécifiées dans un fichier texte
baseline-prof.txt
, situé dans le répertoiresrc/main
ou un répertoire équivalent. Le fichier spécifie une règle par ligne. Dans ce cas, une règle correspond à un modèle mis en correspondance avec des méthodes ou des classes de la bibliothèque. La syntaxe de ces règles correspond à un sur-ensemble du format de profil ART intelligible, utilisé conjointement àadb shell profman --dump-classes-and-methods ...
. Ces règles prennent l'une des deux formes suivantes pour cibler des méthodes ou des classes.Une règle de méthode adoptera le format suivant :
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Une règle de classe adoptera le format suivant :
<CLASS_DESCRIPTOR>
Dans le cas présent,
<FLAGS>
désigne un ou plusieurs des caractèresH
,S
etP
et indique si cette méthode doit être signalée comme "Hot", "Startup" ou "Post Startup".<CLASS_DESCRIPTOR>
est le descripteur de la classe à laquelle appartient la méthode ciblée. Par exemple, la classeandroidx.compose.runtime.SlotTable
aurait comme descripteurLandroidx/compose/runtime/SlotTable;
.<METHOD_SIGNATURE>
est la signature de la méthode, et inclut le nom, les types de paramètres et les types renvoyés de la méthode. Par exemple, la méthodefun isPlaced(): Boolean
surLayoutNode
aurait pour signatureisPlaced()Z
.Ces modèles peuvent comporter des caractères génériques (
**
,*
et?
) pour qu'une même règle affecte plusieurs méthodes ou classes.
Quel effet ont ces règles ?
Une méthode associée à l'indicateur
H
signale qu'il s'agit d'une méthode "hot" qui doit être compilée à l'avance.Une méthode associée à l'indicateur
S
signale qu'il s'agit d'une méthode appelée au démarrage, qui doit être compilée à l'avance pour éviter les coûts de compilation et d'interprétation de la méthode lors du démarrage.Une méthode associée à l'indicateur
P
signale qu'il s'agit d'une méthode appelée après le démarrage.La présence d'une classe dans ce fichier indique qu'elle est utilisée au démarrage et doit être préallouée dans le tas de mémoire pour éviter son coût de chargement.
Comment ça marche ?
- Les bibliothèques peuvent définir ces règles, qui seront packagées dans des artefacts AAR. Lorsqu'un APK comprenant ces artefacts est créé, ces règles sont fusionnées puis utilisées pour créer un profil ART binaire compact spécifique à l'APK. ART peut ensuite exploiter ce profil lorsque l'APK est installé sur des appareils, afin de compiler à l'avance un sous-ensemble spécifique de l'application, ce qui permet d'améliorer ses performances, notamment lors de la première exécution. Notez que cette opération n'a aucune incidence sur les applications débogables.
Version 1.0.0-beta08
2 juin 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta08
. Liste des commits de la version 1.0.0-beta08
Nouvelles fonctionnalités
Modification de l'API Behavior Breaking
- MODIFICATION DESTRUCTIVE : les fiches utilisent désormais des clics, ce qui fait que les clics ajoutés par
Card(Modifier.clickable)
deviennent des no-ops. Utilisez cette nouvelle surcharge expérimentale d'une fiche qui accepte onClick. (Ia8744, b/183775620)- Ajout d'une nouvelle surcharge de fiche qui gère les clics et d'autres fonctionnalités cliquables : indication, interactionSource, activée/désactivée. Dans ce cas, il était impossible d'utiliser une fiche non cliquable standard avec
Modifier.clickable
, car la fiche ne découpe pas l'indication d'ondulation.
- Ajout d'une nouvelle surcharge de fiche qui gère les clics et d'autres fonctionnalités cliquables : indication, interactionSource, activée/désactivée. Dans ce cas, il était impossible d'utiliser une fiche non cliquable standard avec
- MODIFICATION DESTRUCTIVE : les surfaces utilisent désormais des clics, ce qui fait que les clics ajoutés par
Surface(Modifier.clickable)
deviennent des no-ops. Utilisez cette nouvelle surcharge expérimentale d'une surface qui accepte onClick. (I73e6c, b/183775620)- Ajout d'une nouvelle surcharge de surface qui gère les clics et d'autres fonctionnalités cliquables : indication, interactionSource, activée/désactivée. Dans ce cas, il était impossible d'utiliser une surface non cliquable standard avec
Modifier.clickable
, car la surface ne découpe pas l'indication d'ondulation.
- Ajout d'une nouvelle surcharge de surface qui gère les clics et d'autres fonctionnalités cliquables : indication, interactionSource, activée/désactivée. Dans ce cas, il était impossible d'utiliser une surface non cliquable standard avec
Modifications apportées à l'API
FabPosition
a été converti en classe inline depuis une énumération pour permettre une expansion potentielle à l'avenir (I030fb)- Refactorisation des utilisations d'énumération en classes inline pour éviter les problèmes avec les instructions "when" exhaustives lorsque de nouvelles valeurs d'énumération sont ajoutées. (I2b5eb)
- Ajout d'un délai d'appui aux composants pouvant être cliqués ou activés/désactivés pour éviter d'afficher une ondulation lors d'un défilement ou d'un déplacement. (Ia2704, b/168524931)
- Conversion en listes des propriétés sémantiques ContentDescription et Text (précédemment, des valeurs uniques). Cela permet de les fusionner telles quelles au lieu de les concaténer. Les API de test ont été améliorées pour tirer parti de ces modifications. (Ica6bf, b/184825850)
- Abandon de
Modifier.focusModifier()
, remplacé parModifier.focusTarget()
. (I6c860) - Remplacement de l'énumération
FocusState
par une interfaceFocusState
. (Iccc1a, b/187055290) - Suppression de
LocalRippleNativeRendering
, car l'implémentation de l'ondulation est stable (I7fab3, b/188569367).
Corrections de bugs
- Modification de
Modifier.onGloballyPositioned()
, afin de rapporter les coordonnées de ce modificateur dans la chaîne de modificateurs, plutôt que les coordonnées de la mise en page après application de tous les modificateurs. Cela signifie que l'ordre des modificateurs a désormais une incidence sur les coordonnées rapportées. (Ieb67d, b/177926591) - Ajout d'un fichier README pour le catalogue existant de Material Compose. (If9191)
Version 1.0.0-beta07
18 mai 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta07
. Liste des commits de la version 1.0.0-beta07
Modifications apportées à l'API
- Vous n'avez plus besoin d'utiliser de méthodes d'extension pour la prise en charge des itinéraires dans Navigation Compose. (I22beb, b/172823546)
Version 1.0.0-beta06
5 mai 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta06
. Liste des commits de la version 1.0.0-beta06
Modifications apportées à l'API
- L'ondulation a été migrée pour utiliser
RippleDrawable
en interne sur les appareils Android. Cela signifie que les animations d'ondulations se produiront sur RenderThread, et seront donc fluides, même lorsque le thread UI est soumis à une charge, par exemple lors de la navigation entre les écrans. Cela ne modifie pas la surface de l'API de l'ondulation, mais peut entraîner des changements de comportement. Pour faciliter la migration,LocalRippleNativeRendering
a été ajouté : indiquez la valeurfalse
à ce CompositionLocal afin de revenir à la précédente implémentation d'ondulation dans CompositionLocalProvider. Cette API est temporaire et sera supprimée à l'avenir. Par conséquent, si vous rencontrez des problèmes qui vous obligent à utiliser cette API, veuillez signaler un bug. (I902f8, b/168777351, b/183019123) - Ajout des API d'accessibilité CollectionInfo et CollectionItemInfo, qui permettent de marquer la collection et ses éléments pour les services d'accessibilité. (Id54ef, b/180479017)
- Ajout d'une
error
d'API d'accessibilité qui signale un nœud contenant une entrée non valide. (I12997, b/180584804, b/182142737)
Corrections de bugs
- Mise à jour du catalogue Compose Material : https://github.com/google/accompanist/pull/365. (I25dc3)
- Correction d'un bug affectant les enfants Row et Column dont weight(fill = false) qui ordonnaient à leur parent d'occuper l'intégralité de l'espace disponible sur l'axe principal. (Ied94d, b/186012444, b/184355105)
Version 1.0.0-beta05
21 avril 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta05
. Liste des commits de la version 1.0.0-beta05
Corrections de bugs
- Ajout d'images de cartes de composant, d'un sélecteur de thème et d'URL de menu plus spécifiques au catalogue Compose Material existant. (I9b58e)
Version 1.0.0-beta04
7 avril 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta04
. Liste des commits de la version 1.0.0-beta04
Modifications apportées à l'API
- MODIFICATION DE L'API : l'état
DrawerState
n'étend plus le SwipeableState expérimental.- MODIFICATION DE L'API :
BottomDrawerState
est maintenant marqué comme expérimental pour correspondre au composant BottomDrawer expérimental (I81114, b/181656094).
- MODIFICATION DE L'API :
- Changement de nom : dans
SoftwareKeyboardController
,hideSoftwareKeyboard
devienthide()
etshowSoftwareKeyboard
devientshow()
.- Mise à disposition de l'interface CompositionLocal complète pour LocalSoftwareKeyboardController, permettant de la définir (particulièrement utile pour les tests). (I579a6)
- Ajout de l'API d'accessibilité LiveRegion. Si le nœud est marqué comme zone live, les services d'accessibilité en informeront automatiquement l'utilisateur. (Idcf6f, b/172590946)
Corrections de bugs
- Ajout du catalogue Material Compose au module existant. Absent : images de cartes des composants, sélecteur de thème (à ajouter aux modifications de suivi). (Ie7a94)
Version 1.0.0-beta03
24 mars 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta03
. Liste des commits de la version 1.0.0-beta03
Modifications apportées à l'API
- Abandon de
DefaultMonotonicFrameClock
. Désormais, appelerwithFrameNanos
ouRecomposer.runRecomposeAndApplyChanges
sansMonotonicFrameClock
génère une exceptionIllegalStateException
. (I4eb0d) - Ajout d'une API
LeadingIconTab
permettant l'affichage d'une icône et du texte intégré dans un onglet. (I23267)
Contribution externe
- [Par Jossi Wolf]
BottomDrawer
encapsule désormais le contenu de l'emplacement du panneau.BottomDrawer
ne génère pas d'IllegalStateException
lorsque la hauteur du parent est infinie. Le panneau du bas est étendu à l'ouverture si sa taille est inférieure à 50 % de son parent. Des documents concernantBottomDrawerState
etModalBottomSheetLayoutState
ont été mis à jour.BottomDrawerState#isOpen
renvoie désormais "true" s'il est ouvert ou développé. (I87241)
Version 1.0.0-beta02
10 mars 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta02
. Liste des commits de la version 1.0.0-beta02
Modifications apportées à l'API
- Ajout d'une nouvelle API locale de composition
LocalSoftwareKeyboardController
pour remplacer l'ancienne interfaceSoftwareKeyboardController
sur TextField. (I5951e, b/168778053)
Corrections de bugs
- Application forcée des restrictions sur l'utilisation publique des API expérimentales. (I6aa29, b/174531520)
- Modification de l'alignement horizontal par défaut pour que les composants TopAppBar et BottomAppBar soient conformes à Row au lancement (Ib2dc7)
- Ajout d'un module et d'une UI d'espace réservé pour un catalogue Material Compose. Ce module est actuellement imbriqué dans les versions de démonstration des tests d'intégration existants. (Idfcb3).
- Mise à jour de
androidx.compose.ui:ui
, qui ne dépend plus d'AppCompat ni de Fragment. Si vous utilisez ComposeView dans votre application, et si vous utilisez Fragment et/ou AppCompat, assurez-vous d'utiliser les versions 1.3 ou ultérieures d'AppCompat/Fragment. Ces mises à jour sont nécessaires pour définir correctement le cycle de vie et les propriétaires d'état enregistrés requis pour ComposeView. (I1d6fa, b/161814404)
Version 1.0.0-beta01
24 février 2021
Publication d'androidx.compose.material:material-*:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Première publication bêta de la version 1.0.0 de Compose.
Modifications apportées à l'API
- Changement de nom des modificateurs de taille. Modifier.width et ses variantes height/size deviennent respectivement requiredWidth, requiredHeight et requiredSize. Modifier.preferredWidth et ses variantes preferredHeight/preferredSize deviennent respectivement width, height et size. (I5b414)
- imageResource et vectorResource sont désormais des fonctions d'extension pour ImageBitmap et ImageVector respectivement. load{Image,Vector,Font}Les fonctions Resource ont été supprimées. (I89130)
- Mise à jour des modificateurs de dimensionnement des fonctionnalités intrinsèques, qui ne sont plus en phase expérimentale. (I15744)
- Suppression des assertions de dp. (I798d2)
- Suppression du rappel SoftwareKeyboardController (qui sera bientôt remplacé par une nouvelle API) de tous les champs de texte. (Iae869, b/168778053)
- Les lambdas d'action Switch, Checkbox et RadioButton sont désormais nullables. Mise à jour des exemples de Checkbox-in-clickable-row pour utiliser cette fonction. (If601b, b/171819073)
- Remplacement de
InteractionState
par[Mutable]InteractionSource
.- Les interfaces sont responsables de l'émission et de la collecte des événements d'interaction.
- Au lieu de transmettre
interactionState = remember { InteractionState() }
à des composants tels queButton
etModifier.clickable()
, utilisezinteractionSource = remember { MutableInteractionSource() }
. - Au lieu de
Interaction.Pressed in interactionState
, utilisez les fonctions d'extension sur InteractionSource, comme InteractionSource.collectIsPressedAsState(). - Pour les cas complexes, vous pouvez utiliser InteractionSource.interactions afin d'observer le flux des interactions. Pour en savoir plus, consultez la documentation et les exemples d'InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Ajout de l'interface AccessibilityMananger et de LocalAccessibilityMananger dans les CompositionLocals. (I53520)
- Suppression des méthodes LayoutCoordinates obsolètes. Utilisez la fonction au lieu de la propriété pour positionInParent et boundsInParent. (I580ed, b/169874631, b/175142755)
- Le curseur peut maintenant être activé ou désactivé (I6d56b, b/179793072).
- Création de TextInputSession pour les sessions d'entrée à partir de composants de texte de niveau inférieur tels que CoreTextField. (I8817f, b/177662148)
- Suppression d'AnimationEndReason.Interrupted. Génération d'une CancellationException si l'animation est interrompue. (I2cbbc, b/179695417)
- Suppression de
@ExperimentalRippleApi
et modification deRippleAlpha
en tant que classe avec des propriétés au lieu d'une interface. (I6df7c) - Ajout de l'interface TextFieldColors pour représenter les différentes couleurs utilisées dans TextField et OutlinedTextField dans différents états. Pour connaître l'implémentation par défaut, consultez TextFieldDefaults.textFieldColors et TextFieldDefaults.outlinedTextFieldColors.
- Le paramètre isErrorValue a été renommé isError dans TextField et OutlinedTextField. (I831f9, b/171305338, b/168004067)
- Ajout d'un modificateur selectionGroup permettant de marquer la collection de Tabs ou RadioButtons à des fins d'accessibilité. (Ie5c29)
Ajout de LazyListState.animateScrollToItem.
Cette méthode lisse le défilement jusqu'à un élément spécifique de la liste. (I4bfd7)
ScrollableState.smoothScrollBy()
a été renomméanimateScrollBy()
.LazyListState.snapToItemIndex()
a été renomméscrollToItem()
.ScrollState.smoothScrollTo()
a été renomméanimateScrollTo()
. (I35ded)Tous les composables marqués avec
@ReadOnlyComposable
sont maintenant validés à la compilation pour s'assurer qu'ils n'appellent que d'autres@ReadOnlyComposables
. (I58961).Suppression de l'API TargetAnimation. (If47d1, b/177457083)
Mise à jour de Modifier.verticalScroll()/horizontalScroll(), où la position de défilement est désormais représentée par des entiers. (I81298)
Remplacement des packages des méthodes smoothScrollBy et scrollBy par
androidx.compose.foundation.gestures.*
. (I3f7c1, b/175294473)Changement de nom : FlingConfig devient FlingBehavior, et permet désormais de personnaliser l'animation de suspension plutôt que d'utiliser les décompositions prédéfinies. (I02b86, b/175294473)
Changement de nom des modificateurs de taille. Modifier.width et ses variantes height/size deviennent respectivement requiredWidth, requiredHeight et requiredSize. Modifier.preferredWidth et ses variantes preferredHeight/preferredSize deviennent respectivement width, height et size. (I5b414)
Changement de nom : defaultMinSizeConstraints devient defaultMinSize. (I4eaae)
Déplacement d'Orientation vers le package Foundation. Déplacement de VelocirtTracker de ui.gesture vers ui.input.pointer. (Iff4a8, b/175294473)
Reclassement de drawerState.open() et drawerState.close() comme fonctions de suspension. Utilisez rememberCoroutineScope() pour obtenir le champ d'application de la composition afin de les appeler. (I16f60, b/175294473)
Changement de nom : Providers devient CompositionLocalProvider.
- Abandon du constructeur de composition, qui n'accepte plus de paramètre de clé.
- Conversion de la fonction modulable de premier niveau currentCompositeKeyHash en propriété de premier niveau pour composable.
- Déplacement de CompositionData et CompositionGroup vers l'espace de noms androidx.compose.runtime.tooling.
- Conversion de la classe concrète ComposableLambda en interface sans paramètres de type.
- Conversion de la classe concrète ComposableLambdaN en interface sans paramètres de type.
- Déplacement de la fonction snapshotFlow vers l'espace de noms androidx.compose.runtime.
- Reclassement de la méthode de fusion de SnapshotMutationPolicy, qui n'est plus en phase expérimentale.
- Suppression de la fonction clearRoots
@TestOnly
, qui n'était plus nécessaire. - Suppression des fonctions keySourceInfoOf et resetSourceInfo, qui n'étaient plus nécessaires.
- Suppression de Composer.collectKeySourceInformation, qui n'était plus nécessaire.
- Suppression des méthodes isJoinedKey, joinedKeyLeft et joinedKeyRight, qui n'étaient plus nécessaires.
- Déplacement et réorganisation de différentes API de premier niveau dans différents fichiers. En raison de la sémantique des classes de fichiers en Kotlin, ces changements empêcheront la compatibilité binaire, mais n'affecteront pas la compatibilité avec la source. La plupart des utilisateurs ne devraient donc pas rencontrer de problème.
- (I99b7d, b/177245490)
Mise à jour de Modifier.scrollable, retravaillé, qui utilise désormais une interface Scrollable au lieu de la classe ScrollableController. (I4f5a5, b/174485541, b/175294473)
Mise à jour de Modifier.draggable, qui accepte désormais DraggableState au lieu d'un simple lambda. Vous pouvez créer un état via
rememberDraggableState { delta -> }
pour obtenir le même comportement que précédemment. (Ica70f, b/175294473)Reclassement de ZoomableController.smoothScaleBy et ZoomableController.stopAnimation en fonctions de suspension. (I7f970, b/177457083)
Suppression d'API précédemment abandonnées. (Ice5da, b/178633932)
Modifications apportées à l'API Material :
- Ajout du paramètre contentPadding à Top/BottomAppBar pour permettre la personnalisation de la marge intérieure par défaut.
- Réorganisation des paramètres dans BackdropScaffold, afin de respecter les consignes d'API concernant la précédence des paramètres obligatoires sur les paramètres facultatifs.
- Déplacement du paramètre
icon
de BottomNavigationItem, aprèsselected
etonClick
. - Changement de nom : dans BottomNavigationItem,
alwaysShowLabels
devientalwaysShowLabel
. - Renommage des paramètres
bodyContent
, qui deviennent simplementcontent
dans quelques composants. - Réorganisation des paramètres dans
ButtonDefaults.buttonColors()
. Étant donné que le type des paramètres n'a pas changé, cela ne générera pas d'erreur dans votre code. Assurez-vous cependant d'utiliser des paramètres nommés ou de mettre à jour l'ordre manuellement, sinon le fonctionnement de votre code sera altéré. - Ajout du paramètre
secondaryVariant
àdarkColors()
. Cette couleur est généralement la même quesecondary
dans le thème sombre. Le paramètre est ajouté pour améliorer la cohérence et les possibilités de personnalisation. - Suppression de ElevationDefaults et animateElevation() de la surface de l'API publique, car ils n'étaient pas utiles et rarement utilisés.
- Changement de nom : dans
Slider
,onValueChangeEnd
devientonValueChangeFinished
, et peut désormais être nul. - Changement de nom : dans
Snackbar
, le paramètretext
devientcontent
pour plus de cohérence. - Ajout du paramètre
contentPadding
àDropdownMenuItem
, pour permettre la personnalisation de la marge intérieure par défaut.content
devient une extension surRowScope
. - Changement de nom :
ModalDrawerLayout
devientModalDrawer
. - Changement de nom :
BottomDrawerLayout
devientBottomDrawer
. - (I1cc66)
BasicTextField accepte désormais Brush au lieu de Color pour une meilleure personnalisation (I83a36)
imageResource et vectorResource sont désormais des fonctions d'extension pour ImageBitmap et ImageVector respectivement. load{Image,Vector,Font}Les fonctions Resource ont été supprimées. (I89130)
Remplacement d'Indication#createIndication() par Indication#rememberUpdatedIndication(InteractionState) et suppression du paramètre InteractionState de IndicationInstance#drawIndication(). IndicationInstance ne doit s'occuper que de dessiner les effets visuels, et non du lancement d'animations / de l'état d'écriture en réponse aux modifications d'InteractionState. Ces animations et écritures d'état doivent avoir lieu dans
rememberUpdatedIndication()
. En outre, le paramètreindication
est désormais obligatoire dansModifier.indication
. (Ic1764, b/152525426)
Corrections de bugs
- Ajout d'une nouvelle API locale de composition LocalSoftwareKeyboardController pour remplacer l'ancienne interface SoftwareKeyboardController sur TextField. (I658b6, b/168778053)
Version 1.0.0-alpha12
10 février 2021
Publication d'androidx.compose.material:material-*:1.0.0-alpha12
. Liste des commits de la version 1.0.0-alpha12.
Modifications apportées à l'API
- Mise à jour de Modifier.pointerInput, qui nécessite désormais des clés de mise en mémoire pour indiquer le moment où la coroutine de détection des entrées de pointeur doit redémarrer pour les nouvelles dépendances. (I849cd)
- BottomDrawerLayout et ListItem ont été marqués comme @ExperimentalMaterialApi (Id766e)
- Ajout de PaddingValues.Absolute, qui peut être utilisé dans les API acceptant des PaddingValues. (Ia5f30)
- Abandon de onImeActionPerformed. Utilisez KeyboardActions à la place. (If0bbd, b/179071523)
- Changement de nom : ImagePainter devient BitmapPainter, afin de mieux correspondre aux conventions de dénomination d'ImageBitmap et d'ImageVector et de refléter son parallèle, VectorPainter. (Iba381, b/174565889)
- Reclassement de Animatable.snapTo et Animatable.stop en fonctions de suspension. (If4288)
- Déplacement de ComponentActivity.setContent vers androidx.activity.compose.setContent dans le module androidx.activity:activity-compose. (Icf416)
- Suppression des méthodes de déstructuration et copy() de plusieurs classes où elles n'étaient que rarement utilisées. (I26702, b/178659281)
- Ajout de la fonction halfExpand() et expand() à ModalBottomSheetState en interne (Ic914e).
- Reclassement de Indication#createInstance, désormais marqué comme @Composable, et mise à jour de LocalIndication, qui contient désormais un Indication, et non plus () -> Indication. (I5eeea, b/157150564)
- Déplacement d'AlertDialog et de DropdownMenu uniquement vers Android pour le moment. Ajout du paramètre PopupProperties à DropdownMenu pour une configuration plus avancée du pop-up sous-jacent. (I9c443)
- Abandon de loadFontResource, désormais obsolète. Utilisez plutôt fontResource. Abandon de imageResource, loadImageResource, vectorResource et loadVectorResource. Utilisez plutôt painterResource. (I6b809)
- Suppression des paramètres
toggle
ettoggleModifier
de DropdownMenu, et changement du nom dedropdownModifier
,dropdownOffset
etdropdownContent
enmodifier
,offset
etcontent
, respectivement. DropdownMenu se comporte désormais de manière cohérente avecPopup
, où la mise en page parent est utilisée pour la position du menu. Dans la plupart des cas, vous pouvez déplacertoggle
pour qu'il soit un frère deDropdownMenu
et encapsuler les deux dans uneBox
. Consultez l'exemple mis à jour dans la documentation pour en savoir plus sur l'utilisation de cette API. (I884fb) - Changement de nom : toIntPx() devient roundToPx(). (I9b7e4, b/173502290)
- Changement de nom : IntBounds devient IntRect et l'API a été améliorée. (I1f6ff).
- Ajout des actions sémantiques de développement et de réduction. Ajout des états expand et halfExpand dans ModalBottomSheetState. (Ib5064)
- Abandon de Modifier.dragGestureFilter. Utilisez
Modifier.pointerInput { detectDragGestures (...)}
à la place. Vous pouvez également utiliser Modifier.draggable pour les déplacements sur un seul axe. (I0ba93, b/175294473) - Renommage des Ambients pour correspondre à la nouvelle convention Ambient > CompositionLocal. Le précédent nom des Ambients était AmbientFoo, tandis que CompositionLocals est devenu LocalFoo. (I2D55D)
- Déplacement de Selection vers Foundation. (I7892b)
- Avertissement : Nous avons précédemment supprimé le composable
state { 0 }
, et encourageons désormais des approches telles queremember { mutableStateOf(0) }
. Suivant cet exemple, nous allons supprimer le composablesavedInstanceState { 0 }
. Nous vous invitons à utiliserrememberSaveable { mutableStateOf(0) }
, qui enregistrera et restaurera automatiquement si le type utilisé dans MutableState peut être stocké dans le bundle. Si vous transmettiez auparavant un objet Saver personnalisé, vous devrez désormais utiliser une nouvelle surcharge de rememberSaveable, qui contient le paramètrestateSaver
. Exemple de mise en œuvre :val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
. (Ib4c26, b/177338004) - Ajout de ProgressBarRangeInfo.Indeterminate pour marquer les barres de progression indéterminées à des fins d'accessibilité. (I6fe05)
Abandon de @ComposableContract, désormais remplacé par trois annotations plus spécifiques.
@ComposableContract(restartable = false)
est devenu@NonRestartableComposable
@ComposableContract(readonly = true)
est devenu@ReadOnlyComposable
@ComposableContract(preventCapture = true)
est devenu@DisallowComposableCalls
@ComposableContract(tracked = true)
a été supprimé.- (I60a9d)
Abandon des utilitaires
emptyContent()
et(@Composable () -> Unit).orEmpty()
, qui n'ont plus d'impact positif sur les performances ni de valeur ajoutée. (I0484d)Changement de nom : rememberSavedInstanceState() devient rememberSaveable(), et a été déplacé vers le package androidx.compose.runtime.saveable. (I1366e, b/177338004)
Déplacement de Saver, listSaver(), mapSaver() et autoSaver depuis androidx.compose.runtime.savedinstancestate vers androidx.compose.runtime.saveable. (I77fe6)
Changement de nom : les paramètres de RounderCornerShape, CutCornerShape et CornerBasedShape ont été renommés de left/right en start/end, pour permettre la mise en miroir automatique de la forme pour la lecture de droite à gauche. Ajout de AbsoluteRounderCornerShape et AbsoluteCutCornerShape pour les cas où la mise en miroir automatique n'est pas souhaitée. (I61040, b/152756983)
Modification des paramètres
text
eticon
de Tab et du paramètrelabel
de BottomNavigationItem pour qu'ils soient nullables, afin de mieux exprimer le comportement du composant lorsque ces paramètres sont fournis ou non, car cela affecte la taille et la mise en page de l'élément. Si vous transmettez actuellementemptyContent()
pour ne pas représenter text/icon/label, utilisez plutôtnull
. (I57ed4)Renommage du paramètre contentColorFor en backgroundColor (I5bb67)
Remplacement de TabDefaults, qui était obsolète, par TabRowDefaults. (I0f189)
Introduction de l'API ColorMatrix, qui permet de modifier les valeurs RVB du contenu source. L'API ColorFilter a été refactorisée en interface afin de correspondre à l'implémentation de PathEffect. (Ica1e8)
Abandon de AnimatedValue/Float. Utilisez Animatable à la place. (I71345, b/177457083)
Ajout de l'API SemanticsProperties.PaneTitle. (I20d5a)
Ajout de paramètres activés à Tab et BottomNavigationItem pour éviter qu'ils soient cliquables. Modification de BottomNavigationItem en RowScope.BottomNavigationItem pour mieux exprimer ses exigences de mise en page dans son API. (Id683d)
Abandon de tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter et pressIndicationGestureFilter. Utilisez plutôt Modifier.clickable ou Modifier.pointerInput avec la fonction detectTapGestures. (I6baf9, b/175294473)
Ajout du paramètre layoutDirection au createOutline de Shape. Cela permet de créer des formes sensibles à l'orientation de la mise en page. (I57c20, b/152756983)
Suppression de
Recomposer.current()
. [Abstract]ComposeView utilise désormais par défaut des recomposeurs créés par nécessité, délimités dans la fenêtre et gérés par le ViewTreeLifecycleOwner pour la fenêtre concernée. La recomposition et les animations basées sur withFrameNanos sont suspendues tant que le cycle de vie de l'hôte est arrêté. (I38e11)
Corrections de bugs
- L'icône s'agrandit et s'adapte à sa taille, en respectant les modificateurs de taille qui lui sont appliqués. Par exemple,
Icon(.., modifier = Modifier.size(50.dp)
dessinera désormais dans un espace de 50 x 50 dp. (Ib2ba9, b/178796190)
Version 1.0.0-alpha11
28 janvier 2021
Publication d'androidx.compose.material:material-*:1.0.0-alpha11
. Liste des commits de la version 1.0.0-alpha11
Modifications apportées à l'API
- Promotion de certaines API Material pour qu'elles ne soient plus
@Experimental
(I5d20e) - Ajout du paramètre de description du contenu à Image et Icon, utilisé pour fournir la description aux services d'accessibilité. (I2ac4c)
- Modification des interfaces des paramètres avec état Material pour qu'elles comportent des fonctions @Composable qui renvoient
State<T>
. Ajout d'Animatable.asState()
pour faciliter la conversion d'un Animatable en State. Modification d'animateElevation pour en faire une extension de suspension sur Animatable. (If613c) - Snackbar, SnackbarHost et SnackbarHostState ne sont plus des
@ExperimentalMaterialAPI
(Id1fb5) - Modification de Typography, de Shapes et de TabPosition qui ne sont plus des classes de données. Ajout d'une fonction de copie pour Typography et Shapes pour remplacer celles générées. (I40037)
- Suppression de certaines API Material obsolètes (Ifaa25)
Corrections de bugs
- Abandon des propriétés onCommit, onDispose et onActive, remplacées par les API SideEffect et DisposableEffect. (If760e)
- Abandon de la transition basée sur TransitionDefinition. (I0ac57)
- Prise en charge d'Initial State dans updateTransition (Ifd51d)
- Mise à jour de WithConstraints, retravaillé, remplacé par BoxWithConstraints et déplacé vers foundation.layout. (I9420b, b/173387208)
Abandon de la fonction non suspensive scrollBy, suppression de la fonction non suspensive scrollTo.
Nous vous recommandons d'utiliser des fonctions de suspension pour contrôler le défilement et attendre la fin du défilement. Dans le cadre de cette transition, les versions non suspensives de ces fonctions sont abandonnées et/ou supprimées. (Ie9ced)
Abandon de la fonction non suspensive smoothScrollBy. Nous vous recommandons d'utiliser des fonctions de suspension pour contrôler le défilement et attendre la fin du défilement. Dans le cadre de cette transition, les versions non suspensives de ces fonctions sont abandonnées et/ou supprimées. (I12880)
Introduction de
ComposeContentTestRule
, qui étendComposeTestRule
et définitsetContent
, qui a été supprimé deComposeTestRule
. Ajout d'une méthode de fabriquecreateEmptyComposeRule()
qui renvoie uneComposeTestRule
et ne lance pas d'Activity pour vous. Utilisez cette option lorsque vous souhaitez lancer votre Activity au cours du test, par exemple en utilisantActivityScenario.launch
. (I9d782, b/174472899)L'ondulation utilisée dans Button et FloatingActionButton n'est plus personnalisable en fournissant une nouvelle Indication via AmbientIndication. L'Indication n'a jamais été conçue pour personnaliser ces composants et cette mesure rend désormais cohérents ces composants avec les autres composants Material. Pour personnaliser des ondulations dans une application, consultez RippleTheme. (I546c5)
Changement de nom : animateAsState devient animateFooAsState, où "Foo" est le type de variable animée (Float, Dp, Offset, etc.). (Ie7e25)
BasicTextField a reçu un nouveau paramètre appelé
decorationBox
. Il permet d'ajouter des décorations telles que des icônes, des espaces réservés, des libellés et d'autres éléments similaires au champ de texte, et d'augmenter la zone cible de ce champ. (I16996)Correction d'un bug qui empêchait de définir la largeur du champ de texte Material sur une valeur inférieure à 280 dp. (I78373)
Suppression du paramètre canDrag dans Modifier.draggable. (Ic4bec, b/175294473)
Suppression de displaySize, que nous vous invitons à éviter. En règle générale, il est préférable d'utiliser au minimum la taille onRoot() ou celle de la fenêtre. (I62db4)
Surface peut désormais avoir plusieurs enfants de mise en page. (I66a92, b/144488459)
Abandon de invalidate et compositionReference(), respectivement remplacés par currentRecomposeScope et par rememberCompositionReference. (I583a8)
Mise à jour de PopupPositionProvider, afin d'utiliser des coordonnées relatives à la fenêtre plutôt que des coordonnées globales. Renommage du paramètre parentGlobalBounds en anchorBounds, et modification de la valeur de windowGlobalBounds pour
windowSize: IntSize
(I2994a).Suppression de la dépendance de l'entrée du pointeur aux classes Duration et Uptime, qui seront remplacées par Long en millisecondes. (Ia33b2, b/175142755, b/177420019)
Suppression de AnimatedFloat.fling, qui accepte FlingConfig. Utilisez la fonction de suspension Animatable.animateDecay à la place. (I4659b, b/177457083)
Mise à jour des composants pouvant être cliqués, activés/désactivés et sélectionnés, qui peuvent désormais être créés en dehors de la composition. (I0a130, b/172938345, b/175294473)
Remplacement du lissage de vitesse par une interface fonctionnelle (Ib14e5)
Abandon de ScrollableColumn/Row. ScrollableColumn est moins efficace que LazyColumn pour les contenus volumineux, car LazyColumn permet de composer, mesurer et dessiner exclusivement les éléments visibles. Pour détourner les utilisateurs de l'approche inefficace, nous avons décidé d'abandonner ScrollableColumn et ScrollableRow, et d'encourager l'utilisation de LazyColumn et LazyRow. Les utilisateurs peuvent désactiver le comportement Lazy et utiliser les modificateurs directement, comme suit : Column(Modifier.verticalScroll(rememberScrollState())). (Ib976b, b/170468083)
Ajout d'une méthode de fabrique
items(count: Int)
pour le champ d'application de LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
etitemsIndexed(items: List)
sont désormais des fonctions d'extension, qui doivent être importées manuellement lorsqu'elles sont utilisées. Ajout de surcharges d'extension pour les tableaux :items(items: Array)
etitemsIndexed(Array)
. (I803fc, b/175562574)Suppression des méthodes expérimentales monotonicFrameAnimationClockOf. (Ib753f, b/170708374)
Abandon des méthodes de coordonnées globales, remplacées par de nouvelles méthodes de coordonnées relatives aux fenêtres. (Iee284)
Ajout de Modifier.toolingGraphicsLayer, qui introduit un modificateur de couche graphique lorsque l'inspection est activée. (I315df)
Reclassement de FocusRequester.createRefs, marqué comme expérimental car susceptible de changer. (I2d898, b/177000821)
Changements de nom : SemanticsPropertyReceiver.hidden devient invisibleToUser avec le marquage @ExperimentalComposeUiApi. AccessibilityRangeInfo devient ProgressBarRangeInfo et stateDescriptionRange devient progressBarRangeInfo. AccessibilityScrollState devient ScrollAxisRange, horizontalAccessibilityScrollState devient horizontalScrollAxisRange et verticalAccessibilityScrollState devient verticalScrollAxisRange. (Id3148)
Mise à profit de TestCoroutineDispatcher dans les tests. (I532b6)
Mise à jour de l'API Vector Graphics pour permettre l'analyse des teintes appliquées à la racine des éléments graphiques vectoriels. (Id9d53, b/177210509)
Version 1.0.0-alpha10
13 janvier 2021
Publication d'androidx.compose.material:material-*:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Modifications apportées à l'API
- Mise à jour de Velocity, qui réunit désormais des composants et des opérations mathématiques. (Ib0447)
- Changement de nom :
@ExperimentalTesting
devient@ExperimentalTestApi
, par souci de cohérence avec les annotations d'API expérimentales similaires. (Ia4502, b/171464963) - Changement de nom : Position devient DpOffset. Suppression de getDistance(). (Ib2dfd)
- Changement de nom : Color.useOrElse() devient Color.takeOrElse(). (Ifdcf5)
- Ajout de Toggle à Strings.kt dans Foundation. (I4a5b7, b/172366489)
- Abandon de FlowRow et FlowColumn. Veuillez utiliser une mise en page personnalisée à la place. (I09027)
- Abandon de Modifier.focus() et Modifier.focusRequester(). Utilisez Modifier.focusModifier() et Modifier.focusReference() à la place. (I75a48, b/175160751, b/175160532, b/175077829)
- Déplacement de nativeClass vers le module d'interface utilisateur, avec reclassement comme interne. Mise à jour des utilisations de nativeClass dans les implémentations d'égalité, afin d'utiliser "is MyClass" à la place. (I4f734)
Corrections de bugs
- Prise en charge des champs de texte désactivés et en lecture seule. (I35279, b/171040474, b/166478534)
- Remplacement de
animate()
paranimateAsState()
, qui renvoieState<T>
au lieu deT
. Cela permet d'améliorer les performances, car le champ d'invalidation peut être réduit à l'endroit où la valeur State est lue. (Ib179e) - Ajout d'une API de rôle Semantics, et de Role en tant que paramètre des éléments SemanticsModifier pouvant être cliqués, sélectionnés ou activés/désactivés. Modification de Modifier.progressSemantics, afin que le rendre utilisable par Slider. (I216cd)
Version 1.0.0-alpha09
16 décembre 2020
Publication d'androidx.compose.material:material-*:1.0.0-alpha09
. Liste des commits de la version 1.0.0-alpha09
Modifications apportées à l'API
- Ajout d'une API pour déclencher manuellement le réglage de l'animation et la faire glisser dans Modifier.swipeable (Iaa17a, b/162408885)
- Changement de nom : les objets *Constants, tels que ButtonConstants, se terminent désormais par "Defaults" (exemple : ButtonDefaults). Suppression des préfixes
default
inutiles des propriétés de ces nouveaux objets. (Ibb915, b/159982740) Compose prend en charge les getters de propriété qui peuvent effectuer des appels composables. Cette fonctionnalité ne sera pas supprimée, mais la syntaxe permettant de déclarer un getter de propriété comme étant @Composable change.
Pour ce faire, la syntaxe désormais obsolète consistait à annoter la propriété elle-même :
@Composable val someProperty: Int get() = ...
Désormais, vous devez utiliser la syntaxe correcte ci-dessous en annotant le getter de la propriété :
val someProperty: Int @Composable get() = ...
Les deux syntaxes fonctionneront pendant un certain temps, mais à terme, l'ancienne syntaxe deviendra une erreur de compilation. (Id9197)
Ajout de la bibliothèque
androidx.compose.material:material-ripple
contenant des API d'ondulation pour permettre la création de composants interactifs sans avoir besoin du reste de la bibliothèque Material. Abandon de rememberRippleIndication qui a été remplacé par rememberRipple. (Ibdf11)
Corrections de bugs
- Mise à jour des lambdas dans les modificateurs de décalage, qui renvoient désormais IntOffset plutôt que Float. (Ic9ee5, b/174137212, b/174146755)
Refactorisation de ShaderBrush pour créer en différé une instance de nuanceur lorsque les informations de dimensionnement de l'environnement de dessin sont disponibles. Cette option est utile pour définir les dégradés qui occupent complètement l'espace délimité d'un composable au moment de la composition, sans implémentations personnalisées de DrawModifier.
Abandon des API de constructeur de fonctions de dégradés, à remplacer par des méthodes de fabrique sur un objet Gradient. (I511fc, b/173066799)
Abandon de Modifier.focusObserver. Utilisez Modifier.onFocusChanged ou Modifier.onFocusEvent à la place. (I30f17, b/168511863, b/168511484)
Abandon de LazyColumnFor, LazyRowFor, LazyColumnForIndexed et LazyRowForIndexed. Utilisez LazyColumn et LazyRow à la place. (I5b48c)
Déplacement de Dp.VectorConverter, Position.VectorConverter, etc. vers animation-core, et abandon des anciens VectorConverters. (If0c4b)
Reclassement de l'API de saisie automatique, désormais expérimentale (nécessite une activation). (I0a1ec)
Ajout de déclarations de déstructuration pour créer des instances FocusRequester. (I35d84, b/174817008)
Changement de nom : accessibilityLabel devient contentDescription et accessibilityValue devient stateDescription. (I250f2)
Ajout d'une fonction infiniteRepeatable pour créer un InfiniteRepeatableSpec. (I668e5)
Le comportement de positionnement de DropdownMenus a été légèrement modifié conformément à la spécification de Material. (I34c72, b/168594123)
Prise en charge d'InteractionState par TextFields. (I61d91)
Ajout de Modifier.clearAndSetSemantics pour effacer la sémantique des descendants et en définir une nouvelle. (I277ca)
Déplacement de ContentDrawScope vers le module ui-graphics, où se trouve DrawScope. (Iee043, b/173832789)
Version 1.0.0-alpha08
2 décembre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha08
, androidx.compose.material:material-icons-core:1.0.0-alpha08
et androidx.compose.material:material-icons-extended:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Modifications apportées à l'API
- Mise à jour de MaterialTheme, qui définit désormais les couleurs appropriées pour les poignées et l'arrière-plan de sélection. Les applications non Material peuvent utiliser manuellement AmbientTextSelectionColors pour personnaliser les couleurs utilisées pour la sélection. (I1e6f4, b/139320372, b/139320907)
- Ajout d'une vérification lint pour l'attribution d'un nom et d'une position au paramètre lambda composable, afin de confirmer la cohérence avec les consignes Compose.
Nous avons également migré certaines API utilisant
children
comme nom de lambda de fin verscontent
, conformément à la vérification lint et aux consignes. (Iec48e) - Changement de nom : VectorAsset devient ImageVector ; déplacement de VectorAsset vers Builder en tant que classe interne de ImageVector, conformément aux consignes relatives à l'API. Ajout du typealias de VectorAssetBuilder à ImageVector.Builder pour la compatibilité. (Icfdc8)
- Changement de nom : ImageAsset et les méthodes associées deviennent ImageBitmap. (Ia2d99)
- Déplacement des propriétés sémantiques de Foundation vers UI. (I6f05c)
- Abandon de
fun RippleIndication()
et remplacement parrememberRippleIndication()
pour cohérence avec d'autres API. (Id8e2c) - Ajout d'un paramètre singleLine dans BasicTextField, TextField et OutlinedTextField. Définissez ce paramètre sur "true" pour transformer le champ de texte en une seule ligne à faire défiler horizontalement. (I57004, b/168187755)
Corrections de bugs
- Ajout d'une action sémantique Dismiss. (I2b706)
- Déplacement des API DrawModifier du package androidx.compose.ui vers le package androidx.compose.ui.draw. Création d'un fichier DrawModifierDeprecated.kt pour inclure des méthodes d'assistance/typealiases afin de faciliter la migration des API obsolètes vers les API actuelles. (Id6044, b/173834241)
- Changement de nom : Modifier.drawLayer devient Modifier.graphicsLayer. Mise à jour des classes associées vers GraphicsLayer conformément aux commentaires concernant l'API. (I0bd29, b/173834241)
- Suppression de
<T>
de la déclaration de SubcomposeLayout. Vous pouvez désormais l'utiliser sans spécifier de type. (Ib60c8) - Ajout des API Modifier.scale/rotate pour plus de commodité avec drawLayer.
- Changement de nom :
Modifier.drawOpacity
devientModifier.alpha
. - Changement de nom :
Modifier.drawShadow
devientModifier.shadow
. (I264ca, b/173208140)
- Changement de nom :
- Changement de nom : le paramètre d'alignement de Box devient contentAlignment. (I2c957)
- Changement de nom : les modificateurs offsetPx deviennent offset, et acceptent désormais les paramètres lambda au lieu de State. (Ic3021, b/173594846)
- Introduction des API SweepGradientShader et SweepGradientBrush. (Ia22c1)
- Ajout d'une vérification lint pour les paramètres de modificateur dans les fonctions modulables. Cette vérification lint permet de contrôler la cohérence du nom, du type renvoyé, de la valeur par défaut et de l'ordre du paramètre avec les consignes Compose. (If493b)
- Modifications apportées à l'API TextFieldValue :
- TextFieldValue.composition est désormais en lecture seule.
- Suppression de l'exception générée en cas de plage de sélection non valide. (I4a675, b/172239032)
- Ajout d'une surcharge
Modifier.drawLayer()
. Elle utilise un bloc lambda sur une nouvelle GraphicsLayerScope où vous définissez les paramètres du calque d'une manière qui vous permette d'ignorer la recomposition et la nouvelle mise en page lorsque le changement d'état se produit. Préparation de DrawLayerModifier en interne pour la migration de sa logique vers sa méthodeplaceable.placeWithLayer()
dans LayoutModifier (I15e9f, b/173030831) - Abandon des Ambients utilisant le suffixe
Ambient
, remplacés par de nouvelles propriétés utilisant le préfixe Ambient, conformément aux conventions des autres Ambiants et des consignes relatives aux API de Compose. (I33440) - Ajout d'une vérification lint pour contrôler si les fabriques de modificateur utilisent
androidx.compose.ui.composed {}
en interne, au lieu d'être marquées comme@Composable
. (I3c4bc) - Changement de nom : l'argument sémantique mergeAllDescendants devient mergeDescendants. (Ib6250)
- Reclassement du contrôle du temps dans les tests (TestAnimationClock et ses utilisations), désormais expérimental. (I6ef86, b/171378521)
- Suppression de l'ancien module ui-test et ses bouchons. (I3a7cb)
- Changement de nom : TextUnit.Inherit devient TextUnit.Unspecified pour plus de cohérence avec les autres unités. (Ifce19)
- Mise à jour de l'interface Alignment, désormais fonctionnelle. (I46a07, b/172311734)
- Renommage d'ID en layoutId pour LayoutIdParentData. Renommage de Measurable.id en Measurable.layoutId. (Iadbcb, b/172449643)
Version 1.0.0-alpha07
11 novembre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha07
, androidx.compose.material:material-icons-core:1.0.0-alpha07
et androidx.compose.material:material-icons-extended:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07
Modifications apportées à l'API
- Abandon d'Emphasis, remplacé par AmbientContentAlpha. AmbientContentAlpha est une abstraction plus simple qui représente la version alpha du contenu à privilégier dans une partie de la hiérarchie, de la même manière que la couleur AmbientContentColor représente la couleur de contenu préférée. Text et Icon utilisent désormais la valeur actuelle d'AmbientContentAlpha par défaut. Vous pouvez manuellement appliquer :
color.copy(alpha = AmbientContentAlpha.current)
pour avoir le même effet dans vos composants. Au lieu d'utiliser ProvideEmphasis, vous pouvez simplement fournir directement une valeur via AmbientContentAlpha, puis utiliser les nouveaux niveaux par défaut dans ContentAlpha pour remplacer les anciens EmphasisLevels. (Idf03e, b/159017896) - Ajout d'androidx.compose.material.AmbientContentColor pour remplacer androidx.compose.foundation.AmbientContentColor (I84f7b, b/172067770)
- Ajout d'androidx.compose.material.Text pour remplacer androidx.compose.foundation.Text en tant que composant textuel de niveau supérieur avec un thème. Pour un composant de texte de base qui n'utilise pas le style de couleur/texte du thème, utilisez BasicText. (Ie6ae0)
- Ajout de maxLines à TextFields. (Ib2a5b)
- Mise à jour de TextFields, qui accepte désormais KeyboardOptions. (Ida7f3)
- Surface utilise désormais l'altitude absolue (totale) lors du calcul des superpositions d'altitude. Ainsi, une surface imbriquée dans une autre surface utilise la hauteur combinée pour dessiner la superposition. (I7bd2b, b/171031040)
Corrections de bugs
captureToBitmap
déplacé verscaptureToImage
. (I86385)- Abandon d'AmbientTextStyle, ProvideTextStyle et AmbientContentColor dans Foundation. Utilisez les nouvelles versions disponibles dans la bibliothèque Material à la place. Pour les applications non Material, vous devez créer vos propres Ambients de thématisation spécifiques du système de conception, qui pourront être consommés dans vos propres composants. (I74acc, b/172067770)
- Abandon de foundation.Text, remplacé par material.Text. Pour obtenir une API de texte basique non catégorique, qui ne consomme aucune valeur de thème, reportez-vous à androidx.compose.foundation.BasicText. (If64cb)
- Changement de nom : KeyboardOptions devient ImeOptions. (I82f36)
- Déplacement de KeyboardType et ImeAction vers KeyboardOptions. (I910ce)
- Abandon de BaseTextField. Utilisez plutôt BasicTextField. (I896eb)
- Suppression de l'annotation ExperimentalSubcomposeLayoutApi. SubcomposeLayout peut désormais être utilisé sans ajouter @OptIn. (I708ad)
- Déplacement de FirstBaseline et LastBaseline vers le package androidx.compose.ui.layout. (Ied2e7)
- Mise à jour de l'API Icon, qui accepte désormais Color.Unspecified en tant que teinte possible pour dessiner l'élément ou l'objet Painter fourni sans ColorFilter. Auparavant, lorsque vous essayiez d'ignorer la teinture avec Color.Unspecified, une couleur transparente était appliquée. Par conséquent, rien n'était affiché. (I049e2, b/171624632)
- Changement de nom : relativePaddingFrom devient paddingFrom. Ajout d'un modificateur paddingFromBaseline pour faciliter la spécification des distances entre les limites de la mise en page et la ligne de base d'un texte. (I0440a, b/170633813)
- Changement de nom : LaunchedTask devient LaunchedEffect, pour plus de cohérence avec les API SideEffect et DisposableEffect. Afin d'encourager les bonnes pratiques, LaunchedEffect n'est pas autorisé sans paramètre d'objet. (Ifd3d4).
- Suppression de MeasureResult dans MeasureScope. (Ibf96d, b/171184002)
- Déplacement de plusieurs symboles liés à la mise en page depuis androidx.compose.ui vers androidx.compose.layout.ui. (I0fa98, b/170475424)
Version 1.0.0-alpha06
28 octobre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha06
, androidx.compose.material:material-icons-core:1.0.0-alpha06
et androidx.compose.material:material-icons-extended:1.0.0-alpha06
. Liste des commits de la version 1.0.0-alpha06
Modifications apportées à l'API
- Déplacement de androidx.compose.foundation.Icon vers androidx.compose.material.Icon. Si vous ne souhaitez pas utiliser la bibliothèque Material, vous pouvez également utiliser le composant Image ou Modifier.paint() avec un Painter. (I9f622)
- Ajout de FloatingActionButtonElevation pour représenter l'altitude utilisée par les boutons d'action flottants dans différents états. Reportez-vous à FloatingActionButtonConstants.defaultElevation() pour l'implémentation par défaut (I2d4f5)
- Ajout de l'interface SwitchColors pour représenter les couleurs utilisées par un contacteur dans différents états. Consultez SwitchConstants.defaultColors pour personnaliser ces couleurs. (I93805)
- Ajout des interfaces ButtonElevation et ButtonColors pour représenter l'élévation et les couleurs utilisées par les boutons dans différents états. Consultez les fonctions par défaut dans ButtonConstants pour personnaliser ces paramètres. (Ic5b7b)
- Ajout de l'interface RadioButtonColors pour représenter les couleurs utilisées par un élément RadioButton dans différents états. Reportez-vous à RadioButtonConstants.defaultColors() pour personnaliser les couleurs utilisées dans les différents états. (I74130)
- Ajout de l'interface CheckboxColors pour représenter les couleurs utilisées par une case à cocher dans différents états. Consultez CheckboxConstants.defaultColors() pour personnaliser les couleurs utilisées dans les différents états. (I7dbdb)
Corrections de bugs
- Les composants Material ne définissent plus l'élévation en zIndex. Ainsi, dans le même parent, l'enfant dont l'ombre est plus grande ne sera pas dessiné automatiquement au-dessus de l'enfant dont l'ombre est plus petite. Si vous avez toujours besoin d'un tel comportement, définissez manuellement Modifier.zIndex() si nécessaire (I70417, b/170623932).
- Abandon de VectorPainter, à remplacer par rememberVectorPainter pour mieux indiquer que l'API composable exploite "remember" en interne pour conserver les données entre les compositions. (Ifda43)
- Prise en charge des transitions dans ComposeTestRule. L'option permettant d'activer le curseur clignotant dans ComposeTestRule a été supprimée. (If0de3)
- Ajout d'une option de clavier sur une seule ligne à CoreTextField. (I72e6d)
- Changement de nom : l'API Radius devient CornerRadius pour mieux refléter son utilisation dans Compose. La documentation a été mise à jour pour indiquer que les valeurs de rayon négatives sont limitées à zéro. (I130c7, b/168762961)
- Refactorisation de DrawScope et ContentDrawScope, qui deviennent des interfaces au lieu de classes abstraites.
- Création d'une implémentation CanvasDrawScope de DrawScope.
- Refactorisation des implémentations de DrawScope pour utiliser CanvasScope à la place.
- Création de DrawContext pour encapsuler les dépendances de DrawScope.
- Suppression des méthodes obsolètes sur DrawScope. (I56f5e)
- Conversion de Box en fonction inline. (Ibce0c, b/155056091)
Version 1.0.0-alpha05
14 octobre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha05
, androidx.compose.material:material-icons-core:1.0.0-alpha05
et androidx.compose.material:material-icons-extended:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05
Modifications apportées à l'API
- Mise à jour des fenêtres pop-up et boîtes de dialogue, qui héritent désormais FLAG_SECURE de la fenêtre parente. Ajout d'une option permettant de configurer cela explicitement. (I64966, b/143778148, b/143778149)
- Modifier.swipeable comporte actuellement des seuils de 56.dp pour les états (Iab825, b/168610267).
- Tous les états d'échafaudage marqués comme @Stable. drawerGesturesEnabled dans ScaffoldState a été déplacé vers Scaffold lui-même. (I36645, b/168297016)
- Suppression du type nullable des paramètres de lambda Scaffold. Vous pouvez utiliser emptyContent() pour ne spécifier aucun contenu pour un paramètre donné. (I2b318, b/157633857, b/158551084)
Abandon des API contentColor() et currentTextStyle() APIs, remplacées respectivement par les Ambients AmbientContentColor et AmbientTextStyle. Vous pouvez accéder à la valeur actuelle en utilisant
.current
sur la propriété Ambient, comme avec n'importe quelle autre Ambient. Cette modification offre plus de cohérence et évite d'avoir plusieurs méthodes aboutissant au même résultat. De plus, certaines propriétés Ambient ont été renommées pour mieux décrire leur fonction, comme suit :- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Ajout du paramètre AmbientElevationOverlay, qui permet de personnaliser/désactiver la superposition d'élévation par défaut appliquée aux Surfaces du thème sombre. (I5b74d)
Corrections de bugs
- Changement de nom : Color.Unset devient Color.Unspecified pour normaliser les valeurs sentinelles des classes inline et assurer la cohérence avec les autres classes inline. (I97611, b/169797763)
- Introduction de TextOverflow.None. Si le dépassement est défini sur "None", Text ne le gère plus et renvoie sa taille réelle à LayoutNode. (I175c9, b/158830170)
- Changement de nom : launchInComposition devient LaunchedTask pour correspondre aux consignes de l'API Compose. (I99a8e)
- Changement de nom : OnPositionedModifier devient OnGloballyPositionedModifier et onPositioned() devient onGloballyPositioned(). (I587e8, b/169083903)
Version 1.0.0-alpha04
1er octobre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha04
, androidx.compose.material:material-icons-core:1.0.0-alpha04
et androidx.compose.material:material-icons-extended:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Modifications apportées à l'API
- Expose les paramètres InteractionState dans des composants Material avec état, pour permettre le hissage de l'état et la lecture/le contrôle de l'état. (Iaca5f, b/168025711, b/167164434)
- Modification des paramètres
*color
de RadioButton et TriStateCheckbox pour permettre de personnaliser entièrement les couleurs utilisées dans chaque état et de modifier l'animation des couleurs entre les états, si vous le souhaitez. Pour en savoir plus, consultez les nouvelles fonctions de couleur animateDefault* dans CheckboxConstants et RadioButtonConstants. (I1c532) - Renommage de rememberBackdropState en rememberBackdropScaffoldState et ajout d'un paramètre supplémentaire pour l'horloge d'animation. Renommage du paramètre backdropScaffoldState de BackdropScaffold en scaffoldState. Remplacement de BackdropConstants par BackdropScaffoldConstants. (Ib644d)
- Ajout d'un composant BottomSheetScaffold expérimental. (Ie02f0, b/148996320)
- Ajout du composant expérimental ModalBottomSheetLayout. (Ic209e, b/148996320)
- Renommage de ButtonConstants/FloatingActionButtonConstants.defaultAnimatedElevation en defaultElevation, qui renvoie désormais une valeur Dp plutôt qu'une valeur AnimatedValue. (I5f3ed)
Corrections de bugs
- Mise à jour de nombreuses API Graphics :
- Mise à jour des API de transformation du scaling et de la rotation, afin de consommer un seul paramètre Offset pour représenter les coordonnées du point de pivot, au lieu de paramètres flottants distincts pour les coordonnées abscisse-ordonnée dans DrawScope et DrawTransform.
- Suppression des méthodes Rect.expandToInclude et Rect.join.
- Mise à jour de la documentation concernant Radius afin de mentionner les ovales en plus des elliptiques.
- Ajout d'une documentation indiquant que le constructeur public de la classe inline Radius ne doit pas être appelé directement. En revanche, les objets Radius doivent être instanciés via leurs constructeurs de fonction.
- Suppression des API RoundRect permettant d'interroger les propriétés topRight, bottomRight, bottomCenter, etc.
- Abandon de Rect.shift, à remplacer par Rect.translate.
- Suppression des API RoundRect.grow et Rect.shrink.
- Changement de nom : RoundRect.outerRect devient Rect.boundingRect.
- Suppression des méthodes RoundRect.middleRect/tallMiddleRect/wideMiddleRect et Rect.isStadium.
- Changement de nom : RoundRect.longestSide devient RoundRect.maxDimension.
- Changement de nom : RoundRect.shortestSide devient RoundRect.minDimension.
- Conversion de la fonction RoundRect.center en propriété.
- Mise à jour du constructeur RoundRect pour consommer les propriétés de Radius plutôt que des paramètres individuels pour les valeurs abscisse-ordonnée du rayon.
- Suppression des API Size qui supposaient une forme rectangle dont l'origine était 0,0.
- Ajout d'une API de destruction à Radius.
- Migration de diverses fonctions d'extension RoundRect, converties en propriétés.
- (I8f5c7, b/168762961)
- Abandon de foundation.Box. Utilisez foundation.layout.Box à la place. (Ie5950, b/167680279)
- Changement de nom : Stack devient Box. L'ancienne version de Box est abandonnée au profit de la nouvelle dans compose.foundation.layout. Le nouveau comportement de Box consiste à empiler les enfants lorsqu'il y en a plusieurs. L'ancien comportement était comparable à celui de Column. (I94893, b/167680279)
- Abandon des paramètres de décoration de Box. Si vous souhaitez ajouter des décorations/marges intérieures à votre Box, utilisez plutôt des modificateurs tels que Modifier.background, Modifier.border et Modifier.padding. (Ibae92, b/167680279)
- Mise à jour de nombreuses API Graphics :
- Mise à jour des API DrawScope avec des méthodes de transformation axées sur les champs d'application pour indiquer que la transformation n'est appliquée qu'au sein du rappel et supprimée ensuite.
- Mise à jour de la documentation concernant clipPath, pour faire référence à Path plutôt qu'au rectangle arrondi.
- Correction des espacements dans la documentation pour le paramètre de droite dans clipPath.
- Changement de nom : DrawScope.drawCanvas devient drawIntoCanvas. Le paramètre "size" a été supprimé.
- Changement de nom : les paramètres dx/dy de la méthode d'encart deviennent "horizontal" et "vertical".
- Ajout d'une surcharge d'encart avec la même valeur d'encart pour les quatre limites.
- Suppression de la documentation concernant la méthode d'encart selon laquelle l'encart serait appliqué aux quatre côtés.
- Mise à jour de la documentation concernant la classe Rect.
- Mise à jour des commentaires sur les paramètres Rect pour correspondre au style kdoc.
- Suppression de Rect.join et Rect.expandToInclude.
- Création d'une surcharge pour Rect.translate(offset). Abandon de Rect.shift.
- (If086a, b/167737376)
- Suppression de la prise en charge des importations statiques pour le contenu des champs d'application des mises en page (par exemple, alignWithSiblings dans RowScope). Utilisez le champ d'application explicite à la place :
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Version 1.0.0-alpha03
16 septembre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha03
, androidx.compose.material:material-icons-core:1.0.0-alpha03
et androidx.compose.material:material-icons-extended:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Modifications apportées à l'API
- Renommage du paramètre
onSelect
deBottomNavigationItem
enonClick
(I91925, b/161809324) - Ajout du paramètre InteractionState à BottomNavigationItem et Tab, ce qui permet de hisser cet état et d'ajuster l'apparence du composant dans différents états. (Ia3e9e, b/168025711)
- Suppression des paramètres
disabledBackgroundColor
etdisabledContentColor
des boutons. Vous devez plutôt utiliser les nouvelles fonctions de couleur par défaut dans ButtonConstants. Si vous définissez déjà contentColor/backgroundColor explicitement, utilisez plutôt ces fonctions par défaut et personnalisez certains / tous les paramètres pour éviter de remplacer la couleur pour les états activés/désactivés. (If9b52) - La couleur d'arrière-plan de Textfield n'applique pas implicitement la transparence alpha. Au lieu de cela, toute couleur fournie via le paramètre backgroundColor est appliquée directement. (Iecee9, b/167951441)
- Changement de nom : InnerPadding devient PaddingValues. (I195f1, b/167389171)
- Remplacement des paramètres
resistanceFactorAtMin
etresistanceFactorAtMax
deModifier.swipeable
par un seul paramètre de résistance. Ajout d'une méthodedefaultResistanceConfig
dansSwipeableConstants
. (I54238) - Ajout de la prise en charge de l'élévation animée avec état pour Button et FloatingActionButton. L'élévation s'anime désormais entre les états "par défaut" et les états "appuyés". Pour personnaliser l'élévation entre les états, utilisez
ButtonConstants.defaultAnimatedElevation()
etFloatingActionButtonConstants.defaultAnimatedElevation()
au lieu de définir une valeur Dp fixe dans tous les cas. (I37925) - Conversion du libellé en paramètre facultatif dans TextField et OutlinedTextField (I267f6, b/162234081).
Corrections de bugs
- Les fonctions de test globales, telles que
onNode
ouwaitForIdle
, sont désormais obsolètes. Veuillez migrer vers leurs nouveaux équivalents définis sur ComposeTestRule. (I7f45a) - Abandon de DpConstraints et des APIs qui l'utilisaient. (I90cdb, b/167389835)
- Changement de nom : les paramètres minWidth et maxWidth de widthIn deviennent min et max, et il est en va de même pour preferredWidthIn, heightIn, preferredHeightIn. (I0e5e1, b/167389544)
- Suppression des actions sémantiques de défilement vers l'avant/arrière. Ajout d'étapes dans AccessibilityRangeInfo. (Ia47b0)
- Changement de nom : les usages de la gravité ont été renommés "align" ou "alignment" dans les API Layout. (I2421a, b/164077038)
- Ajout de onNode et d'autres méthodes globales sur ComposeTestRule, car les méthodes globales actuelles vont être abandonnées. (Ieae36)
- Déplacement de
createAndroidComposeRule
etAndroidInputDispatcher
, deandroidx.ui.test.android
versandroidx.ui.test
. (Idef08, b/164060572)
Version 1.0.0-alpha02
2 septembre 2020
Publication d'androidx.compose.material:material:1.0.0-alpha02
, androidx.compose.material:material-icons-core:1.0.0-alpha02
et androidx.compose.material:material-icons-extended:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02
Modifications apportées à l'API
- Ajout d'un composant BackdropScaffold expérimental. (Iad908)
Corrections de bugs
- Remplacement de Matrix4 par Matrix. Toutes les autres parties du package vectormath ont été supprimées. (Ibd665, b/160140398)
Version 1.0.0-alpha01
26 août 2020
Publication d'androidx.compose.material:material:1.0.0-alpha01
, androidx.compose.material:material-icons-core:1.0.0-alpha01
et androidx.compose.material:material-icons-extended:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Problème connu
= Le premier caractère d'un TextField
Material ne peut pas être supprimé à l'aide d'un retour arrière (b/165956313)
Version 0.1.0-dev
Version 0.1.0-dev17
19 août 2020
Publication d'androidx.compose.material:material:0.1.0-dev17
, androidx.compose.material:material-icons-core:0.1.0-dev17
et androidx.compose.material:material-icons-extended:0.1.0-dev17
. Liste des commits de la version 0.1.0-dev17
Modifications apportées à l'API
- Suppression de RadioGroup et RadioGroupItems, devenus obsolètes. Utilisez Row et RadioButton à la place (I381b7, b/163806637).
- Suppression des rappels onFocusChanged de TextField. Utilisez Modifier.focusObserver à la place. (I51089, b/161297615)
- Abandon de Modifier.drawBorder. Utilisez Modifier.border à la place. Remplacement de la classe de données Border par BorderStroke. (I4257d, b/158160576)
- Changement de nom pour certaines propriétés dans SwipeableState : swipeTarget -> targetValue, swipeProgress -> progress, swipeDirection -> direction. Ajout d'une fonction rememberSwipeableState pour créer des SwipeableStates. (I2fc9c, b/163129614, b/163132293)
- Ajout de la prise en charge de Snackbar et de la mise en file d'attente appropriée. Accédez-y via la fonction de suspension
SnackbarHostState.showSnackbar
. En outre :- Ajout des composants SnackbarHost. Ils hébergent des Snackbars en fonction de l'état et sont responsables de la transition entre les Snackbars.
- Ajout de SnackbarHostState pour permettre de contrôler les snackbars et les hôtes de snackbars, mais aussi de les dissocier de ScaffoldState. Vous pouvez également accéder à cet état via
scaffoldState.snackbarHostState
. - Ajout d'une surcharge de snackbar pour faciliter l'interface entre snackbarHostState et les snackbars. (I79aaa)
- Ajout d'un paramètre activé à IconButton et réorganisation des paramètres dans IconToggleButton (I0a941, b/161809385, b/161807956)
- Suppression de la version ListItem avec une API basée sur des chaînes. Utilisez plutôt la version de l'emplacement. (Ib8f57, b/161804681)
- Suppression du composant FilledTextField, devenu obsolète. Veuillez utiliser TextField à la place pour obtenir l'implémentation Material Design du champ de texte rempli. (I5e889)
- Mise à jour d'AlertDialog, qui utilise désormais FlowRow pour les boutons. (I00ec1, b/161809319, b/143682374)
- Ajout de paramètres dans Modifier.swipeable pour modifier le niveau de résistance lors du balayage au-delà des limites. Suppression des paramètres [min/max]Value. (I93d98)
- Ajout du paramètre backgroundColor à LinearProgressIndicator et suppression de la marge intérieure interne de CircularProgressIndicator. Ajout de ProgressIndicatorConstants.DefaultProgressAnimationSpec, qui peut être utilisé comme AnimationSpec par défaut lors de l'animation de la progression entre les valeurs. (If38b5, b/161809914, b/161804677)
- Ajout d'un paramètre facultatif velocityThreshold à Modifier.swipeable. (I698ba)
- bottomBarSize, fabSize et autres ne sont plus disponibles dans ScaffoldState. Utilisez Modifier.onPosition à la place sur le composant dont vous souhaitez connaître la taille. Les paramètres Modifier et contentColor ont été ajoutés à Scaffold (Ic6f7b, b/161811485, b/157174382).
- Renommage et réorganisation de certains paramètres dans Tab pour cohérence avec les autres API (Ia2d12, b/161807532).
- Division de la ligne TabRow en TabRow et ScrollableTabRow, en supprimant l'élément isScrollable de TabRow. Ajout d'edgePadding dans ScrollableTabRow, ce qui permet de contrôler l'espace disponible avant/après les onglets. (I583e8, b/161809544)
- Suppression de l'objet
TabRow
et remplacement par TabConstants. Déplacement de TabRow.TabPosition vers le niveau supérieur (TabPosition), et renommage de indicatorContainer enindicator
. Consultez les exemples et la documentation pour en savoir plus sur l'utilisation de l'API mise à jour et sur les valeurs par défaut. (I54d45, b/161809544) - Modification du paramètre thresholds dans Modifier.swipeable. Il prend désormais une paire d'états (de type T) et renvoie le seuil entre eux (sous la forme d'un ThresholdConfig). Ajout d'un paramètre dismissThresholds à SwipeToDismiss. Il s'agit d'un lambda (DismissDirection) -> ThresholdConfig. (Ie1080)
- Ajout de couleurs au curseur pour une personnalisation plus précise (I73e64, b/161810475)
- Renommage du paramètre de couleur de la fiche en backgroundColor (I01fc1, b/161809546).
- Ajout de couleurs d'arrière-plan et de contenu personnalisables à Snackbar (I238f2, b/161804381)
- Ajout des paramètres modifier, backgroundColor, contentColor et scrimColor à Drawers (I23655, b/161804378)
- Abandon du composable
state { ... }
, à remplacer par des appels explicites àremember { mutableStateOf(...) }
pour plus de clarté. Cette approche réduit la surface globale de l'API et le nombre de concepts liés à la gestion des états, et correspond au modèleby mutableStateOf()
de délégation des propriétés de classe. (Ia5727) - Renommage du paramètre de marge intérieure de Button en contentPadding (Id252E, b/161809394).
- Ajout d'un composant Material expérimental SwipeToDismiss. (I129e5)
Corrections de bugs
- Suppression de
onChildPositioned
et deOnChildPositionedModifier
. Les développeurs doivent utiliseronPositioned
etOnPositionedModifier
à la place de la mise en page enfant. (I4522e, b/162109766) - Ajout du lambda mergePolicy à SemanticsPropertyKey. Cela permet de définir une règle personnalisée pour la fusion de la sémantique mergeAllDescendants. La règle par défaut consiste à utiliser la valeur du parent si elle est déjà présente, et la valeur de l'enfant dans le cas contraire. (Iaf6c4, b/161979921)
- Conversion de IntSize en classe inline. (I2bf42)
- Changements de nom :
PlacementScope.placeAbsolute()
devientPlacementScope.place()
, tandis que le précédentPlacementScope.place()
devientPlacementScope.placeRelative()
. Par conséquent, la méthodePlacementScope.place()
ne met plus automatiquement en miroir la position dans les contextes lus de droite à gauche. Si cette approche est souhaitée, utilisez plutôtPlacementScope.placeRelative()
. (I873ac, b/162916675) - Abandon de PxBounds, à remplacer par Rect. Mise à jour de toutes les utilisations de PxBounds avec remplacement par Rect et ajout des abandons/remplacements appropriés avec leurs annotations pour faciliter la migration. (I37038, b/162627058)
- Changement de nom : RRect devient RoundRect, pour mieux correspondre aux conventions de nommage de Compose. Des constructeurs de fonction similaires ont été créés, et les constructeurs de fonction RRect ont été supprimés. (I5d325)
Version 0.1.0-dev16
5 août 2020
Publication d'androidx.compose.material:material:0.1.0-dev16
, androidx.compose.material:material-icons-core:0.1.0-dev16
et androidx.compose.material:material-icons-extended:0.1.0-dev16
. Liste des commits de la version 0.1.0-dev16
Modifications apportées à l'API
- Colors est désormais une classe finale et non plus une interface. Au lieu d'étendre et de fournir une implémentation personnalisée, vous devez créer un nouvel ambient pour votre objet theme personnalisé et accéder à l'objet theme via ce nouvel ambient dans vos composants, de la même manière que MaterialTheme fonctionne en interne. (Ibae84)
- Changement de noms : ColorPalette devient Colors pour mieux correspondre au système de couleurs Material et éviter la confusion avec ColorPalette comme objet de thématisation générique, par opposition à une implémentation spécifique du système de couleurs Material. Changement de noms pour lightColorPalette et darkColorPalette qui deviennent lightColors et darkColors, respectivement. (I9e976, b/161812111)
- Changement de nom : le paramètre
text
de BottomNavigationItem devientlabel
,onSelected
devientonSelect
,activeColor
devientselectedContentColor
,inactiveColor
devientunselectedContentColor
, et met à jour l'ordre des paramètres pour qu'il corresponde aux consignes. (Icb605, b/161809324) Modifier.stateDraggable
a été entièrement retravaillé et renommé Modifier.swipeable. Une nouvelle classe SwipeableState a été ajoutée, et DrawerState et BottomDrawerState ont été refactorisés pour en hériter. [Modal/Bottom]DrawerLayout ne reçoit plus de paramètre onStateChange. (I72332, b/148023068)- Aplatissement du package foundation.shape.corner en foundation.share. (I46491, b/161887429)
- Ajout de l'annotation ExperimentalMaterialApi RippleTheme est désormais marqué comme expérimental (Ic5fa0, b/161784800)
- Changements de nom : le composant Material FilledTextField devient TextField et le composant Foundation TextField devient BaseTextField afin de faciliter la découverte et l'utilisation de l'API souhaitée. (Ia6242, b/155482676)
Corrections de bugs
- Abandon d'OnChildPositioned. Utilisez OnPositioned sur l'enfant à la place. (I87f95, b/162109766)
- Correctifs généraux apportés aux API. (I077bc)
- Suppression de l'interface OffsetBase, qui n'était pas utilisée.
- Alignement des classes Offset et IntOffset pour que la surface de l'API soit cohérente.
- Changement de nom : IntOffset.Origin devient IntOffset.Zero pour assurer la cohérence avec l'API Offset.
- Migration de la méthode nativeCanvas de l'interface de Canvas pour permettre aux consommateurs de créer leurs propres instances de Canvas.
- Création de la classe bouchon EmptyCanvas pour refactoriser DrawScope en un paramètre non nul, au lieu de lateinit, et ainsi garantir la non-nullabilité du champ.
- Application de la casse Pascal dans le nom des énumérations ClipOp.
- Application de la casse Pascal dans le nom des énumérations FilterQuality.
- Application de la casse Pascal dans le nom des énumérations StrokeJoin.
- Application de la casse Pascal dans le nom des énumérations PointMode.
- Application de la casse Pascal dans le nom des énumérations PaintingStyle.
- Application de la casse Pascal dans le nom des énumérations PathFillType.
- Application de la casse Pascal dans le nom des énumérations StrokeCap.
- Mise à jour de l'implémentation de DrawCache pour cesser d'utiliser les paramètres lateinit.
- Mise à jour de DrawScope pour cesser d'utiliser la délégation Lazy pour les paramètres internes fillPaint et strokePaint.
- Mise à jour du composable Image pour éviter l'utilisation de Box et réduire la charge.
- Mise à jour de la classe Outline pour inclure les annotations @Immutable.
- Mise à jour de PathNode pour inclure des annotations @Immutable à chaque instruction du tracé.
- Mise à jour de la sous-composition de Vector pour supprimer les vérifications conditionnelles redondantes d'égalité, car Compose les gère déjà.
- Abandon des méthodes de constructeur associées à Rect, à remplacer par des constructeurs de fonction.
- Mise à jour des classes Brush et des constructeurs de fonctions avec les API @Immutable et @Stable.
- Application de la casse Pascal dans le nom de l'énumération VertexMode.
- Mise à jour de la méthode selectPaint de DrawScope pour écraser de façon conditionnelle les paramètres de trait, si ceux-ci ont été modifiés.
- Mise à jour de Size pour ajouter une API de déstructuration. UnspecifiedSize est renommé Unspecified, et les méthodes inutilisées ont été supprimées.
- Déplacement de Dialog vers UI. (I47fa6)
- Suppression de
SemanticsNodeInteraction.performPartialGesture
. UtilisezSemanticsNodeInteraction.performGesture
à la place. (Id9b62) - Changement de nom :
SemanticsNodeInteraction.getBoundsInRoot()
devientSemanticsNodeInteraction.getUnclippedBoundsInRoot()
. (Icafdf, b/161336532) - Mise à jour des API pour prendre en charge la lecture de droite à gauche. Ajout de LayoutDirectionAmbient, qui permet de lire et modifier la direction de la mise en page. Suppression de Modifier.rtl et Modifier.ltr. (I080b3)
- Changement de nom : Modifier.deternimateProgress devient Modifier.progressSemantics. (I9c0b4)
- Mise à jour de material-icons-extended avec l'ajout des dernières icônes sur Material.io/icons (I4b1d3)
- Obligation que le type T soit précisé explicitement pour transitionDefinition. (I1aded)
- Abandon de Modifier.plus. Utilisez Modifier.then à la place. La forme "then" offre un signal d'ordination plus fort et interdit les saisies de type
Modifier.padding().background() + anotherModifier
, qui rompent la chaîne et sont plus difficile à lire. (Iedd58, b/161529964) - Changement de nom : AndroidComposeTestRule devient createAndroidComposeRule. (I70aaf)
- Ajout d'isFocused() et isNotFocused() SemanticsMatcher. (I0b760)
- Suppression de
BaseGestureScope.globalBounds
, qui ne doit pas être utilisé depuis les tests. Utilisez plutôt les coordonnées locales du nœud avec lequel vous interagissez. (Ie9b08) - Correction du positionnement de la fenêtre pop-up sur les écrans à découpe. (Idd7dd)
- Changement de nom : Modifier.drawBackground devient Modifier.background. (I13677)
Version 0.1.0-dev15
22 juillet 2020
Publication d'androidx.compose.material:material:0.1.0-dev15
, androidx.compose.material:material-icons-core:0.1.0-dev15
et androidx.compose.material:material-icons-extended:0.1.0-dev15
. Liste des commits de la version 0.1.0-dev15
Mise à jour des dépendances
- Pour utiliser la version
0.1.0-dev15
de Compose, vous devez mettre à jour vos dépendances en fonction des nouveaux extraits de code présentés dans la section Déclarer des dépendances ci-dessus.
Modifications apportées à l'API
L'annotation
@Model
est désormais obsolète. Utilisez un état et mutableStateOf comme alternatives. Cette décision a été prise après une longue discussion.Justification
Les raisons clés comprennent notamment les points suivants :
- Réduction de la surface d'API et du nombre de concepts à enseigner
- Alignement avec d'autres kits d'outils comparables (SwiftUI, React, Flutter)
- Décision réversible,
@Model
pourra être ramené ultérieurement - Suppression des utilisations à la marge et des questions difficiles à répondre sur la configuration de
@Model
- Classes de données
@Model
, égalités, code de hachage, etc. - Comment est-il possible que j'aie certaines propriétés "observées" et d'autres non ?
- Comment spécifier l'égalité structurelle ou référentielle à utiliser dans l'observation ?
- Réduit la "magie" du système, ce qui réduit la probabilité que quelqu'un suppose que le système est plus intelligent qu'il ne l'est réellement (autrement dit, qu'il sait comment différencier une liste)
- Précision de l'observation plus intuitive
- Meilleure refactorisation variable -> propriété sur une classe
- Meilleures possibilités d'optimisation manuelle
- Alignement sur le reste de l'écosystème et moins d'ambiguïté par rapport au choix d'un état immuable ou non
Notes de migration
Presque toutes les utilisations existantes de
@Model
se transforment de manière relativement simple en deux cas de figure. L'exemple ci-dessous comporte une classe@Model
avec deux propriétés uniquement à titre d'exemple, et elle est utilisée dans un composable.@Model class Position( var x: Int, var y: Int ) @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
Option 1 : utiliser
State<OriginalClass>
et créer des copies.Cette approche est simplifiée avec les classes de données Kotlin. Vous devez en réalité transformer toutes les propriétés
var
précédentes en propriétésval
d'une classe de données, puis utiliserstate
au lieu deremember
, et attribuer la valeur d'état aux copies clonées de l'original à l'aide de la méthode pratiquecopy(...)
de classe de données.Notez que cette approche ne fonctionne que lorsque les seules mutations de cette classe ont été effectuées au même niveau d'accès que celui où l'instance
State
a été créée. Si la classe effectue une mutation interne en dehors du niveau d'accès de l'utilisation, et que vous vous basez sur cette observation, l'approche suivante est à privilégier.data class Position( val x: Int, val y: Int ) @Composable fun Example() { var p by state { Position(0, 0) } PositionChanger( position=p, onXChange={ p = p.copy(x=it) } onYChange={ p = p.copy(y=it) } ) }
Option 2 : utiliser mutableStateOf et les délégués de propriété.
Cette approche est simplifiée par les délégués de propriété Kotlin et par l'API
mutableStateOf
, qui vous permet de créer des instances MutableState en dehors de la composition. En bref, remplacez toutes les propriétésvar
de la classe d'origine par des propriétésvar
avecmutableStateOf
comme délégué. L'avantage est que l'utilisation de la classe ne change pas du tout, car seule l'implémentation interne est modifiée. Cependant, le comportement n'est pas complètement identique à l'exemple d'origine, car chaque propriété est désormais observée individuellement, et l'abonnement se fait également de façon individuelle. Par conséquent, les recompositions que vous voyez après cette refactorisation peuvent être moins larges (ce qui est une bonne chose).class Position(x: Int, y: Int) { var x by mutableStateOf(x) var y by mutableStateOf(y) } // source of Example is identical to original @Composable fun Example() { var p = remember { Position(0, 0) } PositionChanger( position=p, onXChange={ p.x = it } onYChange={ p.y = it } ) }
(I409e8, b/152050010, b/146362815, b/146342522, b/143413369, b/135715219, b/143263925, b/139653744)
Changement de nom : le rappel onFocusChange dans les champs de texte devient onFocusChanged. (Ida4a1)
Ajout d'un paramètre thresholds dans stateDraggable pour spécifier des seuils entre les ancres Cela permet de définir un seuil de 56 dp dans le panneau inférieur. BottomDrawerLayout utilise désormais une énumération BottomDrawerState distincte. (I533fa)
Suppression de Modifier.ripple, devenu obsolète. Clickable utilise l'ondulation comme indication par défaut (si vous avez défini un MaterialTheme {} dans votre application). Le plus souvent, il vous suffit d'utiliser Clickable pour d'obtenir l'indication d'ondulation. Si vous devez personnaliser le paramètre de couleur, taille ou limite pour l'ondulation, vous pouvez créer manuellement un RippleIndication et le transmettre à Clickable comme paramètre d'indication. (I663b2, b/155375067)
Suppression du remplacement obsolète du composable FilledTextField (I7f8f8)
Changement de nom : l'objet Button (contenant les valeurs par défaut utilisées par la fonction Button) devient ButtonConstants (I7C5F7, b/159687878).
L'emplacement du contenu de Button se comporte désormais comme une Row (utile lorsque vous avez besoin d'une icône avec du texte, voir les exemples de Button et comment le coder). (I0ff10, b/158677863)
Abandon de RadioGroup et RadioGroupItem, devenus obsolètes. Utilisez Box avec Modifier.selectable, Row et Column pour définir l'ensemble approprié de cases d'option radioButton pour votre conception (I7f5cf, b/149528535).
Ajout d'un champ de texte Material avec contours (I1a518)
Abandon de androidx.ui.foundation.TextFieldValue et androidx.ui.input.EditorValue, ainsi que des composables TextField, FilledTextField et CoreTextField, qui utilisaient le même type. Utilisez androidx.ui.input.TextFieldValue à la place. (I4066d, b/155211005)
TabRow.TabPosition ne contient pas de position dans Dp ni dans IntPx (I34a07, b/158577776)
Remplacement de l'utilisation de IntPx par Int. Remplacement de IntPxPosition par IntOffset. Remplacement de IntPxSize par IntSize. (Ib7b44)
Standardisation de l'utilisation de la classe Size (au lieu de PxSize) afin de regrouper les différentes classes utilisées pour représenter les informations de dimensionnement. Cela présente les avantages d'une classe inline permettant d'exploiter un long pour réunir deux valeurs flottantes qui représentent la largeur et la hauteur. (Ic0191)
Abandon de Modifier.ripple. Clickable utilise l'ondulation comme indication par défaut (si vous avez défini un MaterialTheme {} dans votre application). Le plus souvent, il vous suffit d'utiliser Clickable pour d'obtenir l'indication d'ondulation. Si vous devez personnaliser le paramètre de couleur, taille ou limite pour l'ondulation, vous pouvez créer manuellement un RippleIndication et le transmettre à Clickable comme paramètre d'indication. (I101cd, b/155375067)
L'API Scaffold a été retravaillée : quelques paramètres ont changé de nom, et de nouveaux paramètres ont été ajoutés pour une meilleure personnalisation. Ajout d'un getter pour effectuer des requêtes de taille de Fab, TopBar et BottomBar (I0e7ce)
Ajout du composant DropdownMenu dans ui-material, une implémentation de menu Material Design. (I9bb3d)
Autorisation d'afficher/masquer manuellement le clavier virtuel à l'aide de SoftwareKeyboardController (Ifb9d6, b/155427736)
Ajout de Modifier.indication au package Foundation. Il permet d'afficher une indication de pression, de déplacement ou autre sur vos éléments interactifs personnalisés. (I8425f, b/155287131)
Regroupement des implémentations de CanvasScope, pour ne laisser que DrawScope et ContentDrawScope. CanvasScope est renommé DrawScope. Mise à jour de DrawScope afin d'implémenter l'interface Density et de fournir LayoutDirection. La sous-classe DrawScope de ContentDrawScope a été supprimée. Painter et PainterModifier ont été mis à jour, et ne maintiennent plus par eux-mêmes la propriété RTL, déjà fournie par DrawScope sans intervention manuelle. (I1798e)
Changement de nom : Emphasis.emphasize() devient Emphasis.applyEmphasis() (Iceebe).
Les boutons désactivés suivent désormais les spécifications Material Design (I47dcb, b/155076924)
Prise en charge par FilledTextField de l'action IME, de la transformation visuelle et du type de clavier (I1f9cf, b/155075201)
Ajout du paramètre strokeWidth à CircularProgressIndicator pour personnaliser la taille du trait. Pour modifier la taille du trait (hauteur) d'un LinearProgressIndicator, vous pouvez utiliser Modifier.preferredHeight() ou un autre modificateur de taille. (Icea16, b/154919081)
Ajout du paramètre strokeWidth à CircularProgressIndicator pour personnaliser la taille du trait. Pour modifier la taille du trait (hauteur) d'un LinearProgressIndicator, vous pouvez utiliser Modifier.preferredHeight() ou un autre modificateur de taille. (Icea16, b/154919081)
Ajout d'une API d'emplacement pour les icônes de début et de fin dans le champ FilledTextField et du traitement de l'état d'erreur. (Ic12e0)
La couleur par défaut du bouton d'action flottant et du bouton d'action flottant étendu a été remplacée par MaterialTheme.colors.secondary. (I3b9b9, b/154118816)
Remplacement de toutes les utilisations nullables de Color dans l'API par des versions non nullables, avec Color.Unset en cas de valeur nulle. (Iabaa7)
Changement de nom : EdgeInsets devient InnerPadding. Le paramètre "innerPadding" des boutons Material a été renommé "padding". (I66165)
Le curseur est maintenant sans état. Les utilisateurs doivent transmettre et mettre à jour l'état eux-mêmes, comme dans n'importe quelle autre commande. (Ia00aa)
Suppression de StaticDrawer. Si nécessaire, utilisez plutôt Box avec la largeur indiquée par Material (I244a7).
Ajout de l'implémentation de Material Design du champ de texte rempli. (Ic75cd)
Ajout du paramètre modificateur à ListItem et modification de l'ordre des paramètres pour promouvoir le corps du lambda de fin (I66e21)
Ajout du paramètre constructeur defaultFontFamily à Typography, ce qui permet de spécifier la famille de polices par défaut qui sera utilisée pour tous les TextStyles fournis qui n'ont pas de famille définie. (I89d07)
Suppression temporaire de tables de données Material de la surface d'API. (Iaea61)
Changement de nom des paramètres dans le composable Divider (Ic4373)
enfants (Ia6d19)
Suppression de MaterialTheme.emphasisLevels. Utilisez à la place EmphasisAmbient.current pour récupérer les niveaux d'accentuation (Ib5e40).
Mise à jour du système de thématisation basée sur des formes, conformément aux spécifications Material Design. Vous pouvez désormais indiquer des formes de petite, moyenne et grande tailles pour la plupart des composants. (Ifb4d1)
Modification des API MaterialTheme, telles que MaterialTheme.colors() et MaterialTheme.typgraphy(), pour qu'elles soient des propriétés et non des fonctions. Suppression des parenthèses des appels existants. Aucun changement de comportement n'est attendu. (I3565a)
Refactorisation de l'API FloatingActionButton pour accepter les lambdas composables à la place des primitives. Consultez les exemples mis à jour pour en savoir plus sur l'utilisation. (I00622)
Ajout du paramètre
enabled
à Checkbox, Switch et Toggleable. (I41c16)Conversion de Ripple en modificateur. Même si Clickable n'a pas encore été converti, nous vous recommandons d'utiliser
Clickable(onClick = { ... }, modifier = ripple())
. (Ie5200, b/151331852, b/150060763)Déplacement de Surface et de Card depuis androidx.ui.material.surface vers androidx.ui.material (I88a6d, b/150863888).
Ajout d'un paramètre
enabled
distinct à Button, FloatingActionButton et Clickable. Certains paramètres de Button ont été renommés ou réorganisés. (I54b5a)Changement de nom : Image devient ImageAsset, afin de mieux distinguer les données Image et le composable Image à venir, qui servira à la mise en page et à l'affichage du contenu. Création d'une méthode d'extension asImageAsset sur android.graphics.Bitmap, afin de créer une instance d'ImageAsset utile pour combiner le développement d'applications Android traditionnelles avec le framework Compose. (Id5bbd)
Suppression de l'API Snackbar comportant des paramètres de chaîne de façon à utiliser la surcharge qui accepte les lambdas modulables. Consultez les exemples mis à jour pour en savoir plus sur l'utilisation (I55f80)
Refactorisation de l'API Tab pour accepter les lambdas
text
eticon
(Ia057e)Ajout du composant BottomNavigation. Consultez la documentation et les exemples pour obtenir des informations sur l'utilisation (I731a0).
Ajout d'Icon, IconButton et IconToggleButton, et suppression d'AppBarIcon. Vous pouvez remplacer directement les utilisations existantes de AppBarIcon par IconButton. Elles seront désormais associées à la zone cible tactile appropriée. Reportez-vous aux exemples pour plus d'informations sur les utilisations, et aux icônes pour savoir quelles icônes Material vous pouvez utiliser directement avec ces composants. (I96849)
Remplacement de ButtonStyle par des fonctions distinctes et suppression de la surcharge de texte (chaîne). Consultez les exemples mis à jour pour plus d'informations sur la mise en œuvre. (If63ab, b/146478620, b/146482131)
Changement de nom : le modificateur
Border
devientDrawBorder
. (I8ffcc)Suppression de la propriété position de LayoutCoordinates. Cette propriété n'était pas pertinente vis-à-vis de LayoutModifiers, de la rotation ou du scaling. À la place, les développeurs doivent utiliser parentCoordinates et childToLocal() pour calculer la transformation d'une LayoutCoordinate en une autre.
LayoutCoordinates utilise IntPxSize au lieu de PxSize pour la propriété de taille. Les mises en page utilisent un nombre entier de pixels pour définir les tailles. Toutes les tailles doivent être définies en nombres entiers et sans valeurs à virgule flottante. (I9367b)
Modifications destructives apportées à l'API Ambients. Pour en savoir plus, consultez le journal et la documentation sur
Ambient<T>
. (I4c7ee, b/143769776)Ajout du composant Material Scaffold. Implémentations de Scaffold (I7731b)
Remplacement de DrawBorder par le modificateur Border. (Id335a)
Corrections de bugs
- Abandon de FocusModifier, remplacé par Modifier.focus, Modifier.focusRequester et Modifier.focusObserver. Abandon de FocusState et FocusDetailedState, à remplacer par FocusState2. (I46919, b/160822875, b/160922136)
- Abandon de VerticalScroller et HorizontalScroller. Utilisez ScrollableColumn et ScrollableRow pour une expérience intégrée avec le comportement et les paramètres de Column/Row. Utilisez Modifier.verticalScroll et Modifier.horizontalScroll pour contrôler ces aspects dans votre propre élément. ScrollerPosition a également été abandonné, au profit de ScrollState. (I400ce, b/157225838, b/149460415, b/154105299)
- Mise à jour des API Modifier.draggable et Modifier.scrollable, retravaillées. DragDirection a été supprimé en faveur d'Orientation. L'état requis pour le composant à défilement a été simplifié. Changement de nom : ScrollableState devient ScrollableController. (Iab63c, b/149460415)
- Changement de nom :
runOnIdleCompose
devientrunOnIdle
. (I83607) - Mise à jour des propriétés sémantiques à valeur unique, qui utilisent désormais un style d'appel. Par exemple, l'expression "semantics { hidden = true }" s'écrit désormais comme suit : "semantics { hidden() }". (Ic1afd, b/145951226, b/145955412)
- Renommage de plusieurs API de test pour une identification plus intuitive. Toutes les API findXYZ ont été renommées onNodeXYZ. Toutes les API doXYZ ont été renommées performXYZ. (I7f164)
- L'API Transition a été modifiée de manière à renvoyer un état TransitionState au lieu de le transmettre à des éléments enfants. Cela rend l'API plus cohérente avec les API animate(). (I24e38)
- Ajout d'une classe d'unités IntBounds, qui représentent les limites d'un nombre entier de pixels à partir de la mise en page. L'API de PopupPositionProvider a été mise à jour pour l'utiliser. (I0d8d0, b/159596546)
- Ajout d'un indicateur facultatif useUnmergedTree aux outils de recherche des tests. (I2ce48)
- Suppression des API obsolètes de test de la taille. (Iba0a0)
- Suppression de la classe inline Shader, qui encapsulait la classe attendue NativeShader. NativeShader a été renommée Shader. La classe Shader encapsulée n'ajoutait rien d'utile à la surface de l'API et était une classe inline. Utilisez la classe NativeShader directement à sa place. (I25e4d)
- Mise à jour des éléments Popup, Dialog et Menu, qui héritent désormais du MaterialTheme contextuel. (Ia3665, b/156527485)
- Vous pouvez désormais faire défiler DropdowMenu Material. (Ide699)
- Suppression du paramètre de direction de la mise en page dans le bloc de mesure de la fonction Layout(). La direction de la mise en page reste disponible dans le rappel via l'objet de champ d'application de mesure. (Ic7d9d)
- Mise à jour des API de niveau supérieur afin d'utiliser AnimationSpec au lieu de AnimationBuilder pour clarifier le concept de spécification d'animation statique. – Amélioration du DSL de transition grâce à la suppression de l'exigence de lambda de créer des AnimationSpecs telles que tween et spring. Les paramètres de constructeur sont directement utilisés désormais. – Amélioration de la facilité d'utilisation générale d'AnimationSpec, qui permet d'utiliser des constructeurs plutôt que des compilateurs. – Utilisation d'entiers pour la durée et le retard de KeyFrames et Tween. Cela évite des opérations inutiles de conversion des types de données et de surcharger les méthodes (pour prendre en charge à la fois Long et Int). (Ica0b4)
- Switch est maintenant désactivé lorsque
enabled
est défini sur "false" (If4624, b/155941869, b/159331694). - Changement de nom : Modifier.tag devient Modifier.layoutId pour éviter toute confusion avec Modifier.testTag. (I995f0)
- Mise à jour des positions Int de la ligne d'alignement renvoyées par Placeable#get(AlignmentLine), désormais non nullables. Si la ligne d'alignement demandée n'est pas spécifiée, AlignmentLine.Unspecified sera renvoyé. (I896c5, b/158134875)
Refactorisation de la classe Radius en classe inline. Les méthodes de création associées ont été supprimées et sont à remplacer par un constructeur de fonction avec par défaut un paramètre de rayon sur l'axe des ordonnées (y) correspondant au paramètre obligatoire de rayon sur l'axe des abscisses (x).
Mise à jour de DrawScope.drawRoundRect afin de consommer un seul paramètre de rayon au lieu de deux valeurs flottantes distinctes pour le rayon sur les axes x et y. (I46d1b)
Standardisation de l'utilisation de la classe Offset (au lieu de PxPosition), afin de regrouper les différentes classes utilisées pour représenter les informations de positionnement. Cela présente les avantages d'une classe inline permettant d'exploiter un long pour réunir deux valeurs flottantes qui représentent les valeurs de décalage abscisse-ordonnée. (I3ad98)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. La classe Px a été complètement supprimée. (I3ff33)
Abandon du composant Toggleable. Utilisez Modifier.toggleable à la place. (I35220, b/157642842)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. (I086f4)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. (Id3434)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. (I97a5a)
Résolution du problème d'appel d'onClick pour DropdownMenuItems. (I3998b, b/157673259)
Abandon de MutuallyExclusiveSetItem. Utilisez Modifier.selectable à la place. (I02b47, b/157642842)
Abandon de TestTag. Utilisez Modifier.testTag à la place. (If5110, b/157173105)
Ajout d'une animation de clignotement au curseur de TextField. (Id10a7)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. (I19d02)
Mise à jour de VerticalScroller, qui fournit désormais directement Column. Mise à jour de HorizontalScroller, qui fournit désormais directement Row. (Ieca5d, b/157020670)
Remplacement des utilisations de la classe Px dans différentes classes de Compose, dans le cadre d'une refactorisation généralisée qui vise à ne plus utiliser que les types Dp et primitifs pour les paramètres de pixel. (Iede0b)
Restauration de Modifier.semantics (précédemment abandonné) pour permettre son utilisation avec des composants de niveau supérieur. (I4cfdc)
Mise à jour de l'API de modificateurs DrawLayer : outlineShape renommé en shape, sans possibilité de valeur nulle, avec RectangleShape comme valeur par défaut ; clipToOutline renommé en clip ; clipToBounds supprimé, car identique à "clip == true" pour RectangleShape. (I7ef11, b/155075735)
Mise à jour des API Compose de niveau supérieur, afin d'exposer CanvasScope au lieu de Canvas. Cela évite aux consommateurs d'avoir à gérer leurs propres objets Paint. Les consommateurs qui ont toujours besoin d'accéder à Canvas peuvent utiliser la méthode d'extension drawCanvas, qui fournit un rappel permettant d'émettre des commandes de dessin avec le Canvas sous-jacent. (I80afd)
Abandon du composable AlignmentLineOffset. Utilisez le modificateur relativePaddingFrom() à la place. Suppression du composable CenterAlignmentLine. (I60107)
Modification de l'API de lambda de fin de WithConstraints. Au lieu de deux paramètres, elle possède un champ d'application receveur qui, outre les contraintes et layoutDirection, fournit les propriétés minWidth, maxWidth, minHeight et maxHeight dans Dp. (I91b9a, b/149979702)
Ajout du modificateur de mise en page defaultMinSizeConstraints, qui définit les contraintes de taille pour la mise en page encapsulée uniquement lorsque les contraintes correspondantes entrantes ne sont pas spécifiées (0 pour les contraintes minimales et l'infini pour les contraintes maximales). (I311ea, b/150460257)
Suppression de FocusManagerAmbient. Utilisez FocusModifier.requestFocus pour la sélection. (Ic4826)
Création d'une API CanvasScope qui encapsule un objet Canvas afin d'exposer une surface d'API de dessin déclarative sans état. Les transformations sont contenues dans leur propre champ d'application receveur, et les informations de dimensionnement sont également limitées aux encarts correspondants. Un consommateur n'a pas besoin de gérer son propre objet d'état Paint pour configurer les opérations de dessin.
Ajout de CanvasScopeSample et mise à jour de l'application de démonstration pour inclure une démo pour les éléments graphiques déclaratifs. (Ifd86d)
Ajout de la personnalisation de la couleur du curseur à TextField. (I6e33f)
Mise à jour de TextFieldValue utilisé avec TextField, qui peut désormais survivre à la recréation de l'activité, comme suit :
var text by savedInstanceState(saver = TextFieldValue.Saver) { TextFieldValue() }
. (I5c3ce, b/155075724)Changement de nom : LayoutModifier2 devient LayoutModifier. (Id29f3)
Suppression de l'interface LayoutModifier, devenue obsolète. (I2a9d6)
Remplacement du paramètre focusIdentifier de CoreTextField/TextField par FocusNode afin d'intégrer le sous-système de sélection. (I7ea48)
Mise à jour des fonctions de mesures intrinsèques dans Layout et LayoutModifier2, qui disposent désormais d'un receveur pour IntrinsicMeasureScope, fournissant une direction de mise en page implicite à l'API qui interroge les fonctionnalités intrinsèques. (Id9945)
Ajout de Modifier.zIndex(), qui permet de contrôler l'ordre d'affichage des éléments enfants dans une même mise en page parente. La propriété elevation de DrawLayerModifier est renommée shadowElevation et ne contrôle plus l'ordre d'affichage. Modification des paramètres d'ordre pour DrawShadow : l'élévation est désormais le premier et la forme, le deuxième, avec RectangleShape comme valeur par défaut. (I20150, b/152417501)
Déplacement de RectangleShape de androidx.ui.foundation.shape.* vers androidx.ui.graphics.*. (Ia74d5, b/154507984)
Mise à jour de l'API TextField : fusion des rappels onFocus et onBlur en un seul rappel onFocusChange(Boolean) avec paramètre. (I66cd3)
Ajout des paramètres verticalGravity et horizontalGravity à Row et Column, respectivement. (I7dc5a)
Mise à jour de wrapContentWidth et wrapContentHeight, qui attendent désormais un alignement vertical ou horizontal au lieu d'un alignement quelconque. Le modificateur de gravité a été mis à jour pour accepter l'alignement vertical ou horizontal. Row, Column et Stack ont été mis à jour pour accepter les alignements continus personnalisés. (Ib0728)
Création d'une API PixelMap permettant d'interroger les informations de pixel à partir d'un ImageAsset. (I69ad6)
Suppression de ProvideContentColor. Utilisez simplement ContentColorAmbient à la place, directement avec
Providers
. (Iee942)Changement de nom : le module ui-text-compose devient ui-text. Mise à jour de ui-text, qui contient désormais les composables CoreText et CoreTextField. (Ib7d47)
Changement de nom : le module ui-text devient ui-text-core. (I57dec)
Déplacement des composables ui-framework/CoreText, CoreTextField sous ui-text-compose. Vous pouvez inclure ui-text-compose dans votre projet. (I32042)
Améliorations apportées à l'API DrawModifier :
- Mise à jour de ContentDrawScope, qui sert de champ d'application receveur pour draw().
- Suppression de tous les paramètres de draw().
- Mise à jour de DrawScope, qui utilise désormais la même interface que l'ancienne forme CanvasScope.
- Ajout de la méthode drawContent() à ContentDrawScope. (Ibaced, b/152919067)
Conversion des méthodes
runOnIdleCompose
etrunOnUiThread
de ComposeTestRule en fonctions globales. (Icbe8f)Déplacement des opérateurs de délégation de propriété [Mutable]State vers des extensions pour prendre en charge les optimisations de délégation de propriété Kotlin 1.4. Les appelants doivent ajouter des importations pour continuer à utiliser
by state { ... }
ouby mutableStateOf(...)
. (I5312c)Ajout de positionInParent et boundsInParent pour LayoutCoordinates. (Icacdd, b/152735784)
Abandon de ColoredRect. Utilisez Box(Modifier.preferredSize(width, height).drawBackground(color)) à la place. (I499fa, b/152753731)
Changement de nom : LayoutResult devient MeasureResult. (Id8c68)
Ajout de LayoutModifier2, une nouvelle API permettant de définir des modificateurs de mise en page. Abandon de LayoutModifier. (If32ac)
Remplacement de l'opérateur plus du modificateur par des fonctions d'extension de fabrique. (I225e4)
Conversion de Draggable en modificateur. (Id9b16, b/151959544)
Abandon du composable ParentData. Vous devez soit créer un modificateur qui implémente l'interface ParentDataModifier, soit utiliser le modificateur LayoutTag si vous avez simplement besoin d'ajouter des balises aux enfants de la mise en page pour les reconnaître dans le bloc de mesure. (I51368, b/150953183)
Abandon du composable Center, à remplacer par le modificateur LayoutSize.Fill + LayoutAlign.Center, ou par l'un des composables Box ou Stack auxquels sont appliqués les modificateurs appropriés. (Idf5e0)
Ajout de l'API VectorPainter pour remplacer l'API de sous-composition existante pour les éléments graphiques vectoriels. Le résultat de la sous-composition est désormais un objet VectorPainter au lieu d'un DrawModifier. Les anciens composables DrawVector sont abandonnés au profit de VectorPainter.
L'API Image(Painter) est renommée PaintBox(Painter), et un composable Vector a été créé (comportement identique au composable Image, avec un VectorAsset au lieu d'un ImageAsset). (I9af9a, b/149030271)
Changement de nom : LayoutFlexible devient LayoutWeight. Changement de nom : le paramètre tight devient fill. (If4738)
Suppression de RepaintBoundary, à remplacer par DrawLayerModifier. (I00aa4)
Conversion de la fonction modulable standard DrawVector en modificateur drawVector() qui dessine le vecteur comme arrière-plan dans une mise en page. (I7b8e0)
La fonction modulable Opacity a été remplacée par le modificateur drawOpacity. (I5fb62)
Remplacement de la fonction modulable Clip par le modificateur drawClip(). Le modificateur DrawClipToBounds est utile pour simplement rogner le contenu en fonction d'une couche selon une forme rectangulaire. (If28eb)
Remplacement de la fonction modulable DrawShadow par le modificateur drawShadow(). Les ombres sont maintenant dessinées dans LayerModifier. (I0317a)
Ajout de LayerModifier, un modificateur qui permet d'ajouter un RenderNode à une mise en page. Cette option permet de définir le rognage, l'opacité, la rotation, le scaling et les ombres. Cette action remplacera RepaintBoundary. (I7100d, b/150774014)
Déplacement de androidx.compose.ViewComposer vers androidx.ui.node.UiComposer. androidx.compose.Emittable a été supprimé, car il faisait doublon avec ComponentNode. androidx.compose.ViewAdapters a été supprimé et n'est plus accepté. Compose.composeInto a été abandonné. Utilisez
setContent
ousetViewContent
à la place. Compose.disposeComposition a été abandonné. Utilisez la méthodedispose
sur leComposition
renvoyé parsetContent
à la place. androidx.compose.Compose.subcomposeInto a été déplacé vers androidx.ui.core.subcomposeInto. ComponentNode#emitInsertAt a été renommé ComponentNode#insertAt. ComponentNode#emitRemoveAt a été renommé ComponentNode#removeAt. ComponentNode#emitMode a été renommé ComponentNode#move. (Idef00)Création du composable Image pour gérer le dimensionnement/la mise en page en plus de dessiner un ImageAsset donné à l'écran. Ce composable permet également de dessiner une instance de Painter arbitraire respectant sa taille intrinsèque, ainsi qu'une taille fixe ou minimale donnée. (Ibcc8f)
Abandon du composable Wrap, à remplacer par le modificateur LayoutAlign ou par le composable Stack. (Ib237f)
Mise à jour de WithConstraints, qui accepte désormais le paramètre LayoutDirection. (I6d6f7)
Propagation de la direction de la mise en page du nœud de mise en page du parent aux enfants. Ajout d'un modificateur de direction de la mise en page. (I3d955)
Prise en charge de l'orientation de lecture de droite à gauche pour le composant Stack. (Ic9e00)
Suppression du composable DrawShape. Utilisez le modificateur DrawBackground à la place. (I7ceb2)
Prise en charge du sens de lecture de droite à gauche dans le modificateur LayoutPadding. (I9e8da)
Ajout de AdapterList, un composant de liste déroulante qui ne fait que composer et mettre en page les éléments visibles. Problèmes connus : ce composant est exclusivement vertical et ne prend pas correctement en charge certains cas de modifications apportées à ses enfants. (Ib351b)
Mise à jour de l'indicateur
ComposeFlags.COMPOSER_PARAM
, désormais surtrue
, ce qui modifie la stratégie de génération du code pour le plug-in Compose. De manière générale, des fonctions @Composable sont générées avec un paramètre synthétique supplémentaire, qui est transmis aux appels @Composable suivants afin que l'environnement d'exécution en gère correctement l'exécution. Il s'agit d'une modification destructive de la compatibilité binaire, qui ne devrait pas affecter la compatibilité du code source dans les utilisations sanctionnées de Compose. (I7971c)Ajout du composant Canvas. Ce composable occupe une certaine taille (fournie par l'utilisateur) et vous permet de dessiner à l'aide de CanvasScope. (I0d622)
Fusion de Density et DensityScope en une seule interface. Vous pouvez désormais utiliser DensityAmbient.current au lieu d'ambientDensity(), et with(density) au lieu de withDensity(density). (I11cb1)
Mise à jour de LayoutCoordinates, pour définir providedAlignmentLines comme Set au lieu de Map, et faire en sorte que LayoutCoordinates implémente plutôt l'opérateur get() pour récupérer une valeur. Ce changement permet aux modificateurs de modifier plus facilement une ou plusieurs valeurs du Set sans devoir créer une collection pour chaque modificateur. (I0245a)
Mise à jour des Scrollers, qui intègrent désormais le mouvement natif Android de glissement d'un geste vif. (I922af, b/147493715)
Améliorations apportées à la surface de l'API Constraints. (I0fd15)