wear protolayout
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
24 septembre 2025 | 1.3.0 | - | - | 1.4.0-alpha01 |
Déclarer des dépendances
Pour ajouter une dépendance sur wear-protolayout, 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 { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.
Commentaires
Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.
Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.
Version 1.4
Version 1.4.0-alpha01
24 septembre 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.4.0-alpha01
. La version 1.4.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'une méthode d'assistance pour
LayoutModifier
qui permet à un élément d'apparaître progressivement à mesure que le bloc devient visible. (I38531, b/390345969) - Ajout de
materialScopeWithResources
pour prendre en charge le conceptMaterialScope
de M3, qui gère également l'enregistrement automatique des ressources. Il contient de nouvelles méthodes d'assistance pour les images (backgroundImage
avatarImage
et icône) qui évitent d'avoir à enregistrer manuellement les ressources dansonTileResourceRequest
lorsqu'elles sont utilisées. (I525bd, b/428692714) - Assistance Kotlin
ProtoLayout
pourImage
etImageResources
à utiliser avecProtoLayoutScope
et l'enregistrement automatique des ressources. (Iada82, b/430584304) - Ajout d'un getter pour le nombre de propriétés Lottie autorisées dans la personnalisation d'une animation Lottie. (I73733, b/436532706)
- Ajout d'une API dans
AndroidLottieResourceByResId
pour permettre la personnalisation de l'animation Lottie via des propriétés et ajout d'une API pour créer une propriété pour l'emplacement de thème avec l'ID d'emplacement à la couleur spécifiée. (I301b3, b/423581481) - Ajout d'API de fournisseur pour accepter
PendingIntent
comme action de clic (I01978, b/433802488) - Ajoutez une nouvelle API dans
Image.Builder
–setImageResource
pour définir l'objet de ressource directement sur l'image dansonTileRequest
, sans avoir besoin de l'enregistrer dans le mappage dansonTileResourcesRequest
. (Ifa69a, b/428693523) - Ajout du concept
ProtoLayoutScope
en vue d'une meilleure gestion des ressources dans Tiles. (I132ce, b/428692423) ProtoLayout
Material3MaterialScope
expose désormais le champContext
comme public, pour une utilisation dans les méthodes du champ d'application, sans avoir besoin de le transmettre. (I0e5cc, b/414559956)- Rendre publiques les API sémantiques d'en-tête (I75299, b/413653475)
- Exposez les constantes
ARC_DIRECTION_*
en tant que constantes publiques pour les utiliser dansArc/ArcLine/ArcText/DashedArcLine
. (I83959, b/427556439)
Modifications apportées à l'API
- Nous avons abandonné les méthodes
Image.Builder()
etImage.Builder.setResourceId
au profit de la nouvelle API d'enregistrement automatique des ressources, disponible dans les APIImage.Builder(ProtoLayoutScope)
etImage.Builder.setImageResource
, qui élimine la nécessité de remplaceronTileResourcesRequest
. (I7bfe6, b/432758526) - Les API permettant de créer des
ProtoLayoutScope
sont désormais publiques et non plus restreintes. Toutefois, ils ne doivent pas être utilisés, car le système gère déjà ces appels. (I1d8e8, b/432758251)
Correction de bugs
- Ajout d'une implémentation pour la prise en charge de
PendingIntent
dansProtoTiles
(I38167, b/430610429) - Ajoutez la méthode
invalidateLayout
. (Ief898) - Passage de la valeur par défaut de minSdk de l'API 21 à l'API 23 (Ibdfca, b/380448311, b/435705964, b/435705223)
ImageResource
dispose désormais des méthodeshashCode
etequals
. (I650ee, b/428692423, b/428693523)- Ajout du nouveau message proto
PendingIntentAction
et de son générateur d'encapsuleur. (Ie2aca, b/427643502) - Réduisez la fréquence de création de l'instance
ZoneId
. (I284d3) - Appliquez la description de contenu par défaut à l'emplacement unique
textButton
. (I0dc8a, b/415001534) - Correction des calculs pour ajuster le nombre maximal de lignes côté moteur de rendu. (I933bc, b/414353620)
Version 1.3
Version 1.3.0
4 juin 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0
. La version 1.3.0 contient ces commits.
Changements importants depuis la version 1.2.0
- Le design Material 3 arrive sur la montre, avec des composants et des mises en page optimisés pour l'écran rond et qui s'adaptent correctement aux petites et grandes tailles d'écran.
- Cela inclut la bibliothèque
protolayout-material3
(Kotlin uniquement) avec des API plus semblables à Compose pour les composants et fonctionnalités suivants : - Thème de couleur dynamique provenant du système et cadran de montre avec le dernier thème Material3 pour les couleurs, les formes et la typographie
MaterialScope
pour gérer tous les paramètres par défaut et faciliter la personnalisationiconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Tous les composants fonctionnent avec tous les niveaux de SDK et toutes les versions du moteur de rendu
ProtoLayout
, en fournissant des solutions de remplacement appropriées le cas échéant.
- Cela inclut la bibliothèque
- API plus compatibles avec Kotlin et semblables à Compose pour les éléments ProtoLayout de base
LayoutModifier
avec la possibilité d'ajouter la plupart des modificateurs en tant que fonctions chaînées (padding
,contentDescription
(y comprisclearSemantics
),background
,clip
,opacity
, etc.), convertible en objetModifiers
existantLayoutColors
etLayoutString
en tant que types avec une prise en charge plus facile de l'utilisation de champs et de contraintes dynamiquestext
etfontStyle
- Meilleure prise en charge des cartes pour
StateBuilder
, y comprisDynamicDataMap
et les méthodes de fabrique telles queintAppDataKey
pour faciliter la création d'objetsAppDataKey
- Prise en charge des animations Lottie, y compris l'option permettant de définir différents déclencheurs pour le démarrage de l'animation (par exemple, lorsque la mise en page est chargée ou lorsqu'elle devient visible)
- Amélioration de la compatibilité avec les dégradés :
- API de dégradé linéaire faisant partie de
Brush
, qui peut être utilisée dans les modificateursBackground
pour des éléments tels queBox
,Spacer
, etc. - Autoriser les valeurs de couleur dynamiques dans
ColorStop
utilisées pour les dégradés linéaires et radiaux - Le dégradé circulaire existant dans les objets d'arc est désormais compatible avec les couleurs dynamiques, ainsi qu'avec les angles de début et de fin.
- La liaison de données de plate-forme dans
protolayout-expression
pour recevoir des informations chaque fois que la visibilité de la mise en page est modifiée, ce qui peut par exemple être utilisé pour masquer certaines parties de la mise en page pendant que la tuile est balayée vers - La bibliothèque de test -
protolayout-testing
- a été ajoutée pour faciliter la couverture des tests unitaires pour tous les éléments ProtoLayout. - Nouvel élément
DashedArcLine
avec un ensemble de fonctionnalités amélioré pour que la ligne puisse comporter des tirets, contrairement à l'élémentArcLine
existant - Prise en charge de
ArcSpacer
pour définir sa longueur en dimension DP au lieu de degrés - Ajout de l'axe d'arrondi
FontSetting
applicable à certaines polices
Version 1.3.0-rc01
20 mai 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-rc01
sans aucune modification par rapport à la version précédente. La version 1.3.0-rc01 contient ces commits.
Version 1.3.0-beta02
7 mai 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-beta02
. La version 1.3.0-beta02 contient ces commits.
Correction de bugs
- Nous avons apporté une amélioration importante aux valeurs de conception de la typographie appliquées à l'API 36 et aux versions ultérieures. En effet, à partir de l'API 36, toutes les vignettes seront dans la police système. Cette modification permet donc d'améliorer la cohérence du carrousel de vignettes. (If316f)
- Les générateurs
Text
,Spacer
,ArcLine
etDashedArcLine
ne génèrent pas d'exception silayoutConstraints
pour les valeurs dynamiques n'est pas défini. Notez que les anciens moteurs de rendu nécessitent toujours quelayoutConstraints
soit défini et ignoreront toute valeur dynamique qui ne l'est pas. (Ic52e8) - Ajoutez un modificateur de sémantique d'en-tête pour indiquer qu'un élément de mise en page est un en-tête pour une section de contenu à des fins d'accessibilité, et marquez le texte dans l'emplacement du titre de
primaryLayout
comme en-tête d'accessibilité par défaut. (Iae1fb) - Dernières retouches de l'UX de
primaryLayout
, où l'espace entre l'emplacement du titre et l'emplacement principal est réduit à 4 dp au lieu de 6 dp sur les petits écrans. (I0e056) - Appliquez la description de contenu par défaut à
textEdgeButton
. (Ifaf8b) - Mise à jour mineure de la marge intérieure de
avatarButton
. (I0910b)
Version 1.3.0-beta01
9 avril 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-beta01
. La version 1.3.0-beta01 contient ces commits.
Nouvelles fonctionnalités
La version 1.3.0-beta01 de Wear ProtoLayout indique que cette version de la bibliothèque est complète et que l'API est verrouillée (sauf si elle est marquée comme expérimentale). Wear ProtoLayout 1.3 inclut les nouvelles fonctionnalités et API suivantes :
- Le design Material 3 arrive sur la montre, avec des composants et des mises en page optimisés pour l'écran rond et qui s'adaptent correctement aux petites et grandes tailles d'écran.
- Cela inclut la bibliothèque
protolayout-material3
(Kotlin uniquement) avec des API plus semblables à Compose pour les composants et fonctionnalités suivants : - Thème de couleur dynamique provenant du système et cadran de montre avec le dernier thème Material3 pour les couleurs, les formes et la typographie
MaterialScope
pour gérer tous les paramètres par défaut et faciliter la personnalisationiconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Tous les composants fonctionnent avec tous les niveaux de SDK et toutes les versions de ProtoLayout Renderer, et fournissent des solutions de remplacement appropriées le cas échéant.
- Cela inclut la bibliothèque
- API plus compatibles avec Kotlin et semblables à Compose pour les éléments ProtoLayout de base
LayoutModifier
avec la possibilité d'ajouter la plupart des modificateurs en tant que fonctions chaînées (padding
,contentDescription
(y comprisclearSemantics
),background
,clip
,opacity
, etc.), convertible en objetModifiers
existantLayoutColors
etLayoutString
en tant que types avec une prise en charge plus facile de l'utilisation de champs et de contraintes dynamiquestext
etfontStyle
- Meilleure prise en charge des cartes pour
StateBuilder
, y comprisDynamicDataMap
et les méthodes de fabrique telles queintAppDataKey
pour faciliter la création d'objetsAppDataKey
- Prise en charge des animations Lottie, y compris l'option permettant de définir différents déclencheurs pour le démarrage de l'animation (par exemple, lorsque la mise en page est chargée ou lorsqu'elle devient visible)
- Amélioration de la compatibilité avec les dégradés :
- API de dégradé linéaire faisant partie de
Brush
, qui peut être utilisée dans les modificateursBackground
pour des éléments tels queBox
,Spacer
, etc. - Autoriser les valeurs de couleur dynamiques dans
ColorStop
utilisées pour les dégradés linéaires et radiaux - Le dégradé circulaire existant dans les objets d'arc est désormais compatible avec les couleurs dynamiques, ainsi qu'avec les angles de début et de fin.
- La liaison de données de plate-forme dans
protolayout-expression
pour recevoir des informations chaque fois que la visibilité de la mise en page est modifiée, ce qui peut par exemple être utilisé pour masquer certaines parties de la mise en page pendant que la tuile est balayée vers - La bibliothèque de test -
protolayout-testing
- a été ajoutée pour faciliter la couverture des tests unitaires pour tous les éléments ProtoLayout. - Nouvel élément
DashedArcLine
avec un ensemble de fonctionnalités amélioré pour que la ligne puisse comporter des tirets, contrairement à l'élémentArcLine
existant - Prise en charge de
ArcSpacer
pour définir sa longueur en dimension DP au lieu de degrés - Ajout de l'axe d'arrondi
FontSetting
applicable à certaines polices
Version 1.3.0-alpha10
12 mars 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha10
. La version 1.3.0-alpha10 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez un assistant pour le pinceau dans le modificateur d'arrière-plan Kotlin. (I995de)
- Le champ de contexte Android obligatoire a été rendu public dans
MaterialScope
pour faciliter son utilisation dans les fonctions de développeurs qui créent des composants pour les cartes Material3. (I7df73)
Modifications apportées à l'API
- Renommez l'API
platformVisibilityStatus
enPlatformEventSources.isLayoutVisible
et ajoutez une nouvelle API expérimentalePlatformEventSources.isLayoutUpdatePending
. (Ie1e04)
Correction de bugs
- Les marges pour
primaryLayout
sont désormais correctement arrondies à l'unité supérieure, ce qui peut avoir un impact sur certaines mises en page (jusqu'à 2 dp de moins pour l'emplacement principal). (I8f5d3) - Clarification du thème de couleur dynamique par défaut dans les composants
ProtoLayout
Material3. (Iff5f3) - Les typographies
Typography.NUMERAL_*
ne sont plus tabulaires/à chasse fixe par défaut. Si le texte est animé, nous vous recommandons vivement d'ajouter le paramètreFontSetting.tabularNum()
. Dans tous les autres cas, cette option monospace n'est pas nécessaire et vous disposerez de plus de caractères si vous ne l'utilisez pas. (Id3cd9) - Clarification du thème de couleur dynamique par défaut dans les composants
ProtoLayout
Material3. (I9d831)
Version 1.3.0-alpha09
26 février 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
. La version 1.3.0-alpha09 contient ces commits.
Nouvelles fonctionnalités
- Ajout de modificateurs expérimentaux pour
enterTransition
etexitTransition
. (I4a4d6) - Nous avons ajouté une liaison de plate-forme supplémentaire pour recevoir l'état de visibilité de la mise en page complète chaque fois qu'il est modifié. (I250c3)
- Autoriser l'injection de l'état de l'application de test et des données de plate-forme dans
LayoutElementAssertionsProvider
pour évaluer les valeurs dynamiques. (Ib5fcb) - Ajouter des filtres d'angle à la bibliothèque de test protolayout (Ie2361)
ButtonColors
,CardColors
etProgressIndicatorColors
sont désormais compatibles avec la méthode de copie, avec la possibilité de remplacer certains paramètres. (Ie2054)
Modifications apportées à l'API
- Ajouter la compatibilité avec la liaison de données dynamique à la bibliothèque de test (Ib98de)
- Correction de
imageButton
lorsqu'il est utilisé avec la fonctionbackgroundImage
en supprimant la superposition. De plus, autorisez la fonctionbackgroundImage
pour permettre de spécifier la valeur "null" pour la couleur de superposition, ce qui signifie que la superposition ne sera pas appliquée. (Ibec3c)
Correction de bugs
- La méthode
hasValueOfType
par défaut a été modifiée pour générerUnsupportedOperationException
au lieu deIllegalArgumentException
. (Ia36c3) - Les valeurs des jetons de couleur par défaut ont été mises à jour pour refléter les dernières spécifications. (I75d44)
- Corrections pour le problème d'aliasing visible sur les lignes d'arc dans le moteur de rendu de cartes AndroidX. (I88190)
Version 1.3.0-alpha08
12 février 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
. La version 1.3.0-alpha08 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez le paramètre de liste
FontSetting
pour le texte Material3. (Ic102d) - Ajout de la classe
DynamicDataMap
queStateBuilder
prend désormais en charge pour une meilleure API Kotlin de type sécurisé pour les états d'application (I012ba) - Ajout de méthodes de fabrique telles que
intAppDataKey
pour faciliter la création d'objetsAppDataKey
(Icea2a) DynamicDataValue
dispose désormais d'une méthodehasValueOfType(Class<?>)
en plus des méthodeshasInt/hasColor/
.... (I4f7a6)- Nous avons ajouté
errorDim
àColorScheme
ProtoLayout Material3, pour les erreurs de haute priorité ou les actions d'urgence telles que les alertes de sécurité. (Ia17bb) - Nous avons ajouté une protection contre un plantage lors de l'accès au paramètre global "Réduire les animations", qui était déclenché sur certaines plates-formes où ce paramètre n'était pas fourni. (I01e2c)
Modifications apportées à l'API
addKeyToValueMapping
est renomméaddToStateMap
et les méthodesDynamicDataMap.put
sont supprimées, car elles étaient redondantes. (Ibe9dd)- La typographie Material3 est désormais compatible avec l'axe variable d'arrondi pour les polices système qui le prennent en charge. ProtoLayout
FontSetting
est compatible avec l'axe d'arrondi pour les polices qui le prennent en charge. (I33eb5) - Remplacement de
multilineAlignment
par "alignment" dans la méthode de texte Material3. (I2b66b) - Mise à jour de l'indicateur de progression circulaire pour qu'il soit de type "Box". Spécification de
mainContent
dansconstructGraphic
pour qu'il soit de type "Box" (I5a3dc) - Meilleure prise en charge de l'indicateur de progression circulaire dans le graphique (I039db)
Correction de bugs
- Autorisez les valeurs dynamiques dans
ColorStop
, ainsi que pour les angles de début et de fin dansSweepGradient
. (I0146d) - Corrections dans Docs. (I4a63a)
- Mise à jour des composants Material 3 (
graphicCard
etavatarButton
) pour fournir une solution de repli lorsque la dimension d'expansionweight
n'est pas prise en charge (par exemple, en dessous de l'API 33). Mise à jour du composant de texte pour revenir àTEXT_OVERFLOW_ELLIPSIZE_END
lorsqueTEXT_OVERFLOW_ELLIPSIZE
n'est pas pris en charge par le moteur de rendu. (I19e2c) - Mise à jour de la documentation pour
PrimaryLayoutMargins
. (Ibaf7b)
Version 1.3.0-alpha07
29 janvier 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
. La version 1.3.0-alpha07 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'une option d'API permettant de définir différents déclencheurs pour les animations Lottie. Ajout d'une API pour les déclencheurs activés lorsque la mise en page est visible (I8272d)
- Ajout des modificateurs
border
,visibility
etopacity
. (I6d3dd) - Ajout d'un bouton d'avatar au composant ProtoLayout Material3. (Idb5ae)
- Nous autorisons désormais la personnalisation des marges (latérales et, dans certains cas, inférieures) dans Material3
primaryLayout
. (Ib22f6) - Ajoutez la variante segmentée de l'indicateur de progression circulaire. (I6a648)
- Ajout du composant de bouton compact à ProtoLayout Material3. (Ia3c5c)
- Ajout de composants de bouton en forme de pilule et de bouton d'image à ProtoLayout Material3. (Ifb88a)
Modifications apportées à l'API
LayoutModfier.foldIn
s'appelle désormaisfoldRight
pour mieux refléter son comportement attendu (Idf242).- Le déclencheur
VisibleOnce
est désormais expérimental. (Ib2d26) - Supprimez
withOpacity
de l'API publique, car il existe une alternative de bibliothèque graphique. (I030c2) - Les méthodes de premier niveau dans
LayoutString.kt
etLayoutColor.kt
ont été renommées pour avoir des noms compatibles avec Java. (I7aff0) - Suppression des typographies non ProtoLayout dans Material3. (Idd9ae)
- Ajoutez le suffixe "Color" aux champs des classes
*Colors
dans Material3. (I2d114)
Correction de bugs
- Ajout d'une implémentation de secours
EdgeButton
pour l'ancien moteur de rendu sans prise en charge des coins asymétriques. (I63364) - Ajoutez une implémentation de remplacement de l'indicateur de progression circulaire avec un ancien moteur de rendu. (I0f134)
Version 1.3.0-alpha06
15 janvier 2025
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. La version 1.3.0-alpha06 contient ces commits.
Nouvelles fonctionnalités
LayoutColor
pour prendre en charge les types de couleurs statiques et dynamiques (I4c89b)- Ajout du composant
ProtoLayout Material3
textButton. (Id680d) - Ajout du composant
iconButton
ProtoLayout Material3. (Ica3f0) - Ajout du composant de conteneur de bouton ProtoLayout Material3. (I17a38)
- Ajout de la prise en charge des modificateurs sémantiques chaînables à protolayout-material3 (I4af62)
- Ajout du segment unique ProtoLayout Material3
CircularProgressIndicator
(I2c8a2) - Ajout des modificateurs
padding
etmetadata
(I8720a) - Ajout des modificateurs
background
,clip
etclickable
(I35478) - Ajoutez
LinearGradient
à Brush et autorisez son utilisation dans le modificateur d'arrière-plan. (Ic4dea) - Ajoutez la petite taille pour appCard et
titleCard
. (I91f98) - Ajout du composant ProtoLayout Material3
graphicDataCard
. (I92be7) - Ajout des composants ProtoLayout Material3
iconDataCard
ettextDataCard
. (I4e1e4) - Ajout du composant ProtoLayout Material3
appCard
. (Id4c57) - Abstrait
EdgeButtonColors
àButtonColors
. (I83624) - Ajout du composant ProtoLayout Material3
titleCard
. (I2dc72)
Modifications apportées à l'API
- L'API ProtoLayout Material3 accepte désormais
LayoutString
pour prendre en charge les textes statiques et dynamiques. (I9c24a)
Correction de bugs
- Ajout de l'implémentation du moteur de rendu pour l'expansion de
DashedArcLine
(I0c700) - Modification du moteur de rendu pour permettre à
ArcSpacer
de prendre une longueur dp. (I1437b)
Version 1.3.0-alpha05
11 décembre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. La version 1.3.0-alpha05 contient ces commits.
Nouvelles fonctionnalités
- Ajout de
LayoutString
pour prendre en charge les champs de chaîne de mise en page pouvant être liés. (Ida650) - Ajout du composant de conteneur de carte
ProtoLayout Material3
. (Ic985a)
Correction de bugs
- Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte :
-Xjspecify-annotations=strict
(il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin). (Id1f9b, b/326456246)
Version 1.3.0-alpha04
13 novembre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. La version 1.3.0-alpha04 contient ces commits.
Nouvelles fonctionnalités
- La forme Material3 a été mise à jour pour devenir une classe avec des champs contenant la valeur Corner réelle, comme dans Wear Compose. (Ied8cd)
- Mise à jour des couleurs Material3 pour inclure le concept
ColorScheme
, comme dans Wear Compose. (If645e) - Ajoutez plusieurs matchers couramment utilisés à la bibliothèque de tests. (Ie5cec)
Version 1.3.0-alpha03
30 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. La version 1.3.0-alpha03 contient ces commits.
Nouvelles fonctionnalités
- Ajout de
LayoutElementAssertionsProvider
,LayoutElementAssertion
etLayoutElementMatcher
à la bibliothèque de test (Id1110)
Version 1.3.0-alpha02
16 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. La version 1.3.0-alpha02 contient ces commits.
Nouvelles fonctionnalités
- Version initiale de la bibliothèque Material 3. Inclut les composants
text
,edgeButton
,buttonGroup
etprimaryLayout
.
Correctifs de sécurité
- Suite à cette modification, androidx est compilé avec protobuf 4.28.2 afin de résoudre le problème CVE-2024-7254. Pour remédier à ce risque de sécurité, mettez à niveau votre dépendance à la version 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
etandroidx.wear.protolayout:protolayout-external-protobuf
vers la version 1.3.0-alpha02.
Contribution externe
Version 1.3.0-alpha01
2 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. La version 1.3.0-alpha01 contient ces commits.
Correction de bugs
- Précision indiquant que la disponibilité des noms de famille de polices Roboto et Roboto Flex dépend de l'appareil. (I193be)
- Activation de la famille de polices Roboto Flex dans le moteur de rendu AndroidX Tile. (I08e94)
Version 1.2
Version 1.2.1
16 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.1
. La version 1.2.1 contient ces commits.
Correctifs de sécurité
- Suite à cette modification, androidx est compilé avec protobuf 4.28.2 afin de résoudre le problème CVE-2024-7254. Pour remédier à ce risque de sécurité, mettez à niveau votre dépendance à la version 1.2.0 de
androidx.wear.protolayout:protolayout-proto
etandroidx.wear.protolayout:protolayout-external-protobuf
vers la version 1.2.1.
Version 1.2.0
7 août 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0
. La version 1.2.0 contient ces commits.
Changements importants depuis la version 1.1.0
FontStyle
a été mis à jour pour prendre en charge davantage de polices pour les axes variables et une meilleure API de sélection de polices pour prendre en charge les futures polices Flex.- Compatibilité avec d'autres modificateurs :
- Modificateur de transformation offrant la translation, la rotation et la mise à l'échelle avec ou sans animations.
- Spécifiez des valeurs différentes (horizontales et verticales) pour chaque rayon d'angle.
- Amélioration de l'accessibilité de toutes les cibles tactiles en étendant la zone cliquable de tout élément utilisant le modificateur Clickable à au moins
48dp
x48dp
. - Amélioration de
PrimaryLayout
etEdgeContentLayout
en ajoutantsetResponsiveContentInsetEnabled
pour mieux prendre en charge le comportement responsif de ces mises en page sur différentes tailles d'écran et améliorer la cohérence des tuiles. - Amélioration de la mise à l'échelle/non-mise à l'échelle du texte Material pour la mise à l'échelle non linéaire de la police d'Android 14.
- Prise en charge améliorée de l'orientation de droite à gauche pour tous les éléments arc.
Autres modifications
- Pour obtenir la liste complète des modifications apportées à la version 1.1.0, consultez les notes de version de la version bêta 01.
Version 1.2.0-rc01
24 juillet 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. La version 1.2.0-rc01 contient ces commits.
Correction de bugs
- Nous avons corrigé le chip Material standard afin qu'il puisse être utilisé comme icône uniquement si aucun libellé principal ou secondaire n'est transmis. (Iceef9)
- La documentation sur les mises en page Material a été mise à jour pour inclure des visuels de la page concernée afin de faciliter la compréhension des mises en page. (I0256a)
Version 1.2.0-beta01
10 juillet 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. La version 1.2.0-beta01 contient ces commits.
Nouvelles fonctionnalités
La version 1.2.0-beta01 de Wear ProtoLayout indique que cette version de la bibliothèque est complète et que l'API est verrouillée (sauf si elle est marquée comme expérimentale). Wear ProtoLayout 1.2 inclut les nouvelles fonctionnalités et API suivantes :
FontStyle
a été mis à jour pour prendre en charge des polices supplémentaires :- Définir différents paramètres de variante de police, tels que
FontSetting.weight
etFontSetting.width
- Définir la même largeur pour tous les caractères numériques : chiffres tabulaires (paramètre de fonctionnalité de police
FontSetting.tnum
) - Amélioration des API de sélection de polices pour prendre en charge les futures polices flexibles en spécifiant les noms de famille de polices préférés à utiliser.
- Définir différents paramètres de variante de police, tels que
- Extension du modificateur
Corner
pour permettre de spécifier chaqueCornerRadius
avec des valeurs horizontales et verticales distinctes afin de créer des éléments avec des angles asymétriques. - Ajout d'un nouveau modificateur
Transformation
offrant la translation, la rotation et la mise à l'échelle deLayoutElement
. Ces transformations peuvent être animées à l'aide de valeurs dynamiques. - Ajout de
setArcDirection
avec les optionsClockwise
,CounterClockwise
etNormal
à tous les éléments d'arc (Arc
,ArcLine
etArcText
) pour une meilleure prise en charge dans différentes directions de mise en page (telles que de gauche à droite et de droite à gauche). - Amélioration de l'accessibilité de toutes les cibles tactiles en étendant la zone cliquable de tout élément utilisant le modificateur
Clickable
à au moins48dp
×48dp
. - Amélioration de
PrimaryLayout
etEdgeContentLayout
en ajoutantsetResponsiveContentInsetEnabled
pour mieux prendre en charge le comportement responsif de ces mises en page sur différentes tailles d'écran et améliorer la cohérence des tuiles. Ajout d'un avertissement linter pour suggérer l'utilisation de ces API avec une solution rapide. - Amélioration de la mise à l'échelle/non-mise à l'échelle de
Text
Material pour la mise à l'échelle non linéaire de la police d'Android 14.
Modifications apportées à l'API
- Le nom de la famille de polices par défaut (
DEFAULT_SYSTEM_FONT
) est supprimé, car il est implicite en n'utilisant pas l'APIpreferredFontFamilies
. (I39dab) - Le paramètre transmis à
FontSetting.width
doit être positif. (I1266f)
Version 1.2.0-alpha05
26 juin 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. La version 1.2.0-alpha05 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez la méthode
hasText
àMaterial.CompactChip
pour vérifier si le contenu du texte a été défini. (I6e8fc)
Modifications apportées à l'API
- Les constantes
FontFamily
sont déplacées dansFontStyle
au lieu de sa classe Builder. (I06ced) - Mise à jour des API
FontSetting.weight
etFontSetting.width
pour inclure les annotations de plage et modifier le paramètre de poids pour qu'il soit un entier. (Ia726c)
Correction de bugs
- Les textes non évolutifs de la bibliothèque Material fonctionnent désormais correctement avec la mise à l'échelle non linéaire de la police d'Android 14. (I6601e)
Version 1.2.0-alpha04
29 mai 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. La version 1.2.0-alpha04 contient ces commits.
Modifications apportées à l'API
- Ajout de l'API d'angles asymétriques pour pouvoir spécifier séparément le rayon de chaque angle avec deux valeurs. (Icbd69)
- Extension de l'API
FontSetting
pour inclure : - Ajout de l'API de famille de polices à
FontStyle
pour permettre de spécifier une liste ordonnée des familles de polices à utiliser. (Iba9f5) - Les constantes de hauteur d'espace entre le contenu et le libellé secondaire dans
LayoutDefaults
de Material, qui étaient initialement préfixées par "Edge content", ont été renommées pour être plus génériques, car elles peuvent être appliquées àPrimaryLayout
etEdgeContentLayout
. (I4dc32)
Correction de bugs
- Le nommage des axes de la typographie variable est passé de
axisName
àaxisTag
. (I02ba3)
Version 1.2.0-alpha03
14 mai 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. La version 1.2.0-alpha03 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'une API permettant de définir des valeurs de pondération personnalisées pour
FontStyle
. (I7390a)
Correction de bugs
- Corrigez l'échec dans
getTouchDelegateInfo
en raison d'une carte cible vide. (I2accf)
Version 1.2.0-alpha02
1er mai 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. La version 1.2.0-alpha02 contient ces commits.
Modifications apportées à l'API
- Nous avons ajouté la possibilité de désactiver le retour visuel de l'onde sur des éléments cliquables individuels. (If1ede)
- L'API de transformation a été supprimée de
ArcModifiers
, car elle n'est pas compatible avec cette fonctionnalité (Ic0827). - Le compilateur
ArcDirectionProp
attend désormais une valeur dans le constructeur. (I76ada) - La méthode
PlatformDataValues.Builder.putAll
permet de fusionner unPlatformDataValue
dans un autre. (I50ba3) Text#setIsScalable
a été renomméText#setScalable
. (If920e)- Material Text peut définir s'il faut utiliser une taille ajustable (qui augmente lorsque la taille de police de l'utilisateur est modifiée) ou non. (Ibc849)
- Nous avons ajouté la possibilité de définir la description du contenu sur
TitleChip
. (I5d21f) - Correction de
CompactChip
pour qu'il fonctionne correctement avec l'icône uniquement et mise à jour de l'API pour autoriser cette option. (I6589e)
Correction de bugs
- Correction d'un problème de données de plate-forme potentiellement en double lors de l'initialisation. (Iba0fd)
- Ajout d'un nouveau getter à
DynamicDataNode
pour récupérer le coût du nœud. Le coût est utilisé lors de l'acquisition du quota de nœuds dynamiques. Actuellement, les nœuds avec des valeurs fixes ont un coût de 0, tandis que tous les autres nœuds ont un coût de 1. (Ia33e1) - Supprimez la logique de comptage de
NO_OP_QUOTA_MANAGER
. (Ib50b8) - Nous avons ajouté une règle lint pour signaler un avertissement lorsque
PrimaryLayout
est utilisé sanssetResponsiveContentInsetEnabled
et fournir une solution rapide. (I12025) - Le nombre de nœuds d'expression dynamique est limité. (Iffae8)
Version 1.2.0-alpha01
6 mars 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. La version 1.2.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- Les éléments
ProtoLayout Arc
peuvent désormais être associés à unArcDirection
(Clockwise
,Counterclockwise
ouNormal
). L'ajout de ce comportement àArc
,ArcLine
ouArcText
corrigera leur comportement sur les mises en page de droite à gauche. (I90699) EdgeContentLayout
a été mis à jour avec un nouveau settersetResponsiveContentInsetEnabled
pour mieux s'aligner sur les consignes UX, et pour assurer la cohérence des tuiles en plaçant le libellé principal en haut à un emplacement fixe et en utilisant une marge intérieure responsive pour les libellés. (I60175)- Nous avons ajouté
PrimaryLayout.setResponsiveContentInsetEnabled
, qui ajoute un encart responsif au libellé principal, au libellé secondaire et au chip inférieur de cette mise en page, afin d'éviter que le contenu ne sorte des limites de l'écran. (I0c457) - Ajoute une méthode pour supprimer les marges extérieures de
CircularProgressIndicator
afin qu'il puisse être utilisé comme un composant plus petit. (I55c06)
Modifications apportées à l'API
- Le moteur de rendu des vignettes exclut désormais la marge intérieure de la police sur tous les éléments de texte par défaut, sans possibilité de l'inclure. (I3e300)
Correction de bugs
- Correction d'un problème d'alignement du texte lorsque les propriétés "ellipsize", "letter spacing" et "center align" sont toutes utilisées sur le texte. (I716c7)
- Ajout d'une solution de contournement pour un problème de dessin d'arc Skia. (I08f09)
- Correction de la direction du dessin
ArcLine
pour les mises en page de droite à gauche. (I6c141)
Version 1.1
Version 1.1.0
7 février 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0
. Liste des commits de la version 1.1.0
Modifications importantes depuis la version 1.0.0
- Prise en charge des dégradés et meilleure représentation des longueurs supérieures à 360 degrés dans
ArcLine
. - La mise en forme de la date et de l'heure est compatible avec différents fuseaux horaires pour les types de données dynamiques.
- De meilleures options de redimensionnement et d'ellipse du texte pour gérer le texte tronqué.
- L'espaceur accepte les dimensions développées avec un poids facultatif.
- Annotation de l'exigence de version du schéma à toutes les API
ProtoLayout
. - La zone cible de tout élément
Clickable
a été étendue à 48 dp x 48 dp pour répondre aux exigences d'accessibilité. - La marge intérieure de la typographie est désactivée par défaut. Il s'agit du seul comportement de tous les éléments de texte et des composants Material contenant du texte.
Autres modifications
- Pour obtenir la liste complète des modifications apportées à la version 1.1.0, consultez les notes de version de la version bêta 01.
Version 1.1.0-rc01
24 janvier 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. Liste des commits de la version 1.1.0-rc01
Correction de bugs
PlatformTimeUpdateNotifierImpl
ticks immediately after enabling update. (I77145)- Le problème
CircularProgressIndicator
a été résolu pour les mises en page de droite à gauche. Désormais, il tournera dans le sens des aiguilles d'une montre dans tous les cas. (I95ee3) - Ajout d'une solution de contournement pour un problème de dessin d'arc Skia. (I08f09)
Version 1.1.0-beta01
10 janvier 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. Liste des commits de la version 1.1.0-beta01
Nouvelles fonctionnalités
La version 1.1.0-beta01 de Wear ProtoLayout indique que cette version de la bibliothèque est complète et que l'API est verrouillée (sauf si elle est marquée comme expérimentale). Wear ProtoLayout 1.1 inclut les nouvelles fonctionnalités et API suivantes :
ArcLine
est désormais compatible avec les dégradés en ajoutantBrush
avecSweepGradient
et en ajoutant une ombre sur le capuchon pour mieux représenter les longueurs supérieures à 360 degrés en ajoutantShadow
sur leStrokeCap
existant.DynamicInstant
est compatible avec la mise en forme de date et heure avec fuseau horaire.DynamicInstant
etDynamicDuration
peuvent être utilisés comme types de données d'état ou de plate-forme.- Fonctionnalité de dimensionnement automatique de la taille du texte qui permet de définir plusieurs tailles sur
FontStyle.setSizes
, où la taille du texte est automatiquement mise à l'échelle en fonction de l'espace dont il dispose dans le parent. De plus, nous avons amélioré les options d'ellipse pour le texte qui déborde en ajoutantTEXT_OVERFLOW_ELLIPSIZE
et en abandonnantTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
prend désormais en charge les dimensions développées avec une pondération facultative. Pour créerExpandedDimensionProp
, nous avons ajouté une méthode d'assistanceDimensionBuilders.weight
.- Prise en charge de l'affichage et du masquage dynamiques des éléments de mise en page avec
Modifier.visible
. Cela inclut les valeurs dynamiques dansBoolProp
. - Toutes les API
ProtoLayout
disposent désormais d'une annotation d'exigence de version de schéma. La version peut être vérifiée avant d'appeler une API plus récente. - Chaque élément doté de
Clickable
voit désormais sa zone cible étendue à au moins 48 x 48 dans le moteur de rendu afin de mieux répondre aux exigences d'accessibilité. - Après d'autres composants Material et initiatives Compose, nous avons désormais désactivé la marge intérieure de la police par défaut sur tous les éléments
Text
. De plus,AndroidTextStyle
et les setters associés ont été supprimés de l'API publique. avec les corrections de bug suivantes : - Ajout d'un setter pour positionner le contenu de bord dans
EdgeContentLayout
afin qu'il puisse être positionné avant les autres contenus. - Générer systématiquement une exception lorsqu'une valeur d'énumération non reconnue est rencontrée.
- Invalidez le résultat d'une expression lorsqu'elle génère une valeur numérique non valide (NaN ou infinie) ou renvoie une
ArithmeticException
.
Modifications apportées à l'API
- Mises à jour de l'API
SweepGradient
pour permettre l'acceptation de couleurs ou deColorStops
dans le constructeur. (I6676f)
Correction de bugs
- Ajout d'une API et d'un moteur de rendu à accès limité pour définir le sens dans lequel les éléments d'arc sont dessinés. (Idef5a)
- Si
RoundMode
n'est pas spécifié dansFloatToInt32Node
, la valeur par défaut estFloor
. Le nœud génère toujours une exception si leRoundMode
fourni n'est pas reconnu. (I1b2d8)
Version 1.1.0-alpha04
13 décembre 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. Liste des commits de la version 1.1.0-alpha04
Nouvelles fonctionnalités
- La classe
VersionInfo
n'implémente pas l'interfaceComparable
. (I8d13c) - Le moteur de rendu est désormais compatible avec l'option
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085)
Modifications apportées à l'API
- L'option de dépassement de texte
TEXT_OVERFLOW_ELLIPSIZE_END
est désormais obsolète. Veuillez utiliser la nouvelle APITEXT_OVERFLOW_ELLIPSIZE
, qui présente un comportement très similaire. (I822d8) - Après d'autres composants Material et initiatives Compose, nous avons désormais désactivé la marge intérieure des polices par défaut sur tous les éléments de texte. De plus,
AndroidTextStyle
et les setters associés ont été supprimés de l'API publique. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) Modifier.hidden
est remplacé parModifier.visible
(I56902)FontStyle#setSizes
accepte désormais les arguments int au lieu deSpProp
. (I02b37)
Correction de bugs
- Génère une exception lorsqu'une valeur d'énumération "Undefined" ou "Unrecognized" est rencontrée. (I9d2cf)
- Refactoriser
DynamicTypeBindingRequest
. (I27b57) - Invalidez le résultat d'une expression lorsqu'elle génère une valeur numérique non valide (NaN ou infinie) ou renvoie une
ArithmeticException
. (I681ae)
Version 1.1.0-alpha03
29 novembre 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
. Liste des commits de la version 1.1.0-alpha03
Nouvelles fonctionnalités
- Ajout de la prise en charge expérimentale pour masquer/afficher dynamiquement les éléments de mise en page (I64a78)
- Ajout de la compatibilité avec les valeurs dynamiques à
BoolProp
(I2fe96) - Ajout d'une annotation d'exigence de version de schéma aux API
ProtoLayout
(I0f03c) - Extension de l'API avec la nouvelle option de
TextOverflow
pour tronquer le texte dans un conteneur parent fixe, même lorsque le nombre maximal de lignes n'est pas atteint (mais qu'il n'y a pas assez d'espace pour le texte). (I110a9) - Ajout de la méthode d'assistance
DimensionBuilders.weight
pour créerExpandedDimensionProp
avec un poids. (I4f72b) DynamicInstant
etDynamicDuration
peuvent être utilisés comme types de données d'état ou de plate-forme. (I6819f)
Modifications apportées à l'API
- Mise à jour de l'API pour masquer
DynamicZonedDateTime
et déplacer toutes ses opérations versDyanamicInstant
(I34b94) - L'espaceur prend désormais en charge la dimension "Développé" pour la largeur et la hauteur. (Ie7c94)
- Extension de la zone cible du clic dans le rendu (I39c79)
Version 1.1.0-alpha02
15 novembre 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
. Liste des commits de la version 1.1.0-alpha02
Nouvelles fonctionnalités
- Ajout d'un champ
ArcLine
StrokeCap
Shadow
à l'API. (I830ec) - Extension de l'API pour pouvoir spécifier la largeur ou la hauteur de l'espaceur à développer. (I757ca)
- Nous avons ajouté une API expérimentale pour mettre automatiquement à l'échelle la taille du texte en fonction de l'espace dont il dispose dans le parent. (Ibbe63)
- Prise en charge de la taille cliquable minimale (I178e3)
- Ajout de la prise en charge du moteur de rendu pour
StrokeCap
Shadow
. (I48b17) - Ajout de la prise en charge du moteur de rendu pour le dégradé de balayage dans
ArcLine
. (I4d5bb)
Version 1.1.0-alpha01
18 octobre 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
. Liste des commits de la version 1.1.0-alpha01
Nouvelles fonctionnalités
- Ajout d'une option de pinceau à
Arcline
, avec prise en charge deSweepGradient
. (Ie7ce3) - Ajout de la prise en charge de la mise en forme des dates et heures avec fuseau horaire. (Ibfae0)
- Ajout des protos et des wrappers Java requis pour la mise en forme de la date et de l'heure avec fuseau horaire. (I97126)
- Ajout de getters pour relire la valeur stockée dans un
DynamicDataValue
. (Ie6cea) - Ajout d'un setter pour positionner le contenu de bord dans
EdgeContentLayout
afin qu'il puisse être positionné avant les autres contenus. (Ie8e8a)
Correction de bugs
- Correction d'un problème où une expression comportant plusieurs enregistrements de sources de données temporelles n'était pas mise à jour immédiatement. (I8e1a8)
- Correction d'un bug qui empêchait de centrer l'élément racine lors des mises à jour des différences. (Ie48f7)
- Les valeurs de contrainte de mise en page non définies (ou vides) ne seront plus ignorées. (Ibc785)
- Réduction du délai entre la visibilité d'une mise en page et l'initialisation de ses nœuds de pipeline. (I38d4e)
Version 1.0
Version 1.0.0
9 août 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0
. Liste des commits de la version 1.0.0
Principales fonctionnalités de la version 1.0.0
La bibliothèque ProtoLayout introduit des API permettant de créer des mises en page et des expressions utilisables sur différentes surfaces Wear OS. Par exemple, la bibliothèque Tiles utilise ces API pour prendre en charge la liaison de données de plate-forme (pour des mises à jour plus rapides des données des tuiles) et les animations.
Version 1.0.0-rc01
26 juillet 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-rc01
. Liste des commits de la version 1.0.0-rc01.
- Pour migrer de Tiles vers
ProtoLayout
, veuillez suivre ces instructions.
Modifications apportées à l'API
- Nous avons supprimé les méthodes
setLayoutConstraintForDynamicAnchorAngle
etgetLayoutConstraintForDynamicAnchorAngle
de l'élément Arc. Ces méthodes ont été ajoutées par erreur et n'ont eu aucun effet sur la mise en page fournie. (If7d01) - Nous avons limité la profondeur maximale de la mise en page d'un
ProtoLayout
à 30LayoutElements
imbriqués. (I8a74b)
Correction de bugs
- Nous avons ajouté une vérification pour générer une exception si
DynamicColor
a été défini pour unSpanText
. (I0e5bc) - Il est précisé que l'unité de la source de données
DAILY_CALORIES
est la kilocalorie. (Iaa785)
Version 1.0.0-beta01
21 juin 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-beta01
. Liste des commits de la version 1.0.0-beta01
Nouvelles fonctionnalités
- Autoriser la définition de l'horloge pour les tests de liaison temporelle. (I05622)
Modifications apportées à l'API
PlatformDataReceiver.onData()
etStateBuilders.Builder.addKeyToValueMapping
acceptent désormais le mappage de type sécurisé deDynamicDataKey
àDynamicDataValue
plutôt que les génériques non sécurisés. Autrement dit,DynamicDataValue
est désormais saisi avec sonDynamicType
. Les constantesHEART_RATE_ACCURACY_X
ont été déplacées à la racine dePlatformHealthSources
, pour correspondre au positionnement des autres constantes Android. Les constantes intHEART_RATE_ACCURACY_X
sont désormais utilisées directement dansDynamicHeartRateAccuracy.constant()
etDynamicHeartRateAccuracy.dynamicDataValueOf()
au lieu de la constante de valeur. (I82ff5)- La classe
PlatformHealthSources.Constants
était instanciable par erreur. Ce problème a été résolu. (Icb849) PlatformTimeUpdateNotifier#setReceiver
reçoit désormaisRunnable
au lieu de la fonctionSupplier
etExecutor
pour la notification. (I9d938)- Nous avons modifié le type de paramètre dans
PlatformTimeUpdateNotifier#setReceiver
, qui est passé deCallable
àSupplier
. (I664bf) CompactChip
etTitleChip
permettent désormais d'ajouter une icône. (I5a01e)
Correction de bugs
- Mise à jour des messages Prop avec des champs dynamiques pour utiliser "oneof" à la place (I81739)
- Réutiliser l'implémentation des setters pour les surcharges qui en ont (Ied70c)
- Enregistrement correct des empreintes digitales dans les setters qui ont des surcharges (I86ed2)
Version 1.0.0-alpha11
7 juin 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
. Liste des commits de la version 1.0.0-alpha11
Nouvelles fonctionnalités
- Nous avons ajouté un
PlatformDataKey
pour la précision de la fréquence cardiaque. (I7f9b8)
Modifications apportées à l'API
- Renommez
StateBuilders#getIdToValueMapping
engetKeyToValueMapping
et remplacez le type renvoyé parMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae) StateStore
est désormais une classe finale. (I408ca)- L'interface
TimeGateway
a été remplacée parPlatformTimeUpdateNotifier
dans la bibliothèqueprotolayout-expression-pipeline
, qui fournit la fréquence souhaitée pour la mise à jour des données temporelles. (I60869) - Renommage de
register
/unregisterForData
enset
/clearReceiver
dansPlatformDataProvider
(I14b02) - Dans Material Text,
getExcludeFontPadding
a été renomméhasExcludeFontPadding
. (Iea01d) - Un setter permettant d'aligner parfaitement le libellé a été ajouté à tous les composants Chip. Une zone de sélection minimale est désormais appliquée à tous les chips. (I8ae92)
- Le compte de service (
LayoutDefaults#BUTTON_MAX_NUMBER
) a été renomméMAX_BUTTONS
. (I84788) DAILY_DISTANCE
a été renomméDAILY_DISTANCE_M
. (I4f758)
Correction de bugs
- Mise à jour de la documentation sur les types de propriétés pour expliquer pourquoi une valeur statique est appliquée. Spécifiez la valeur par défaut à utiliser si aucune valeur statique n'a été fournie. (I155aa)
- Les espaces de noms
PlatformDataKey
doivent suivre les règles de dénomination de style Java. (I47bda)
Version 1.0.0-alpha10
24 mai 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
. Liste des commits de la version 1.0.0-alpha10
Nouvelles fonctionnalités
- Ajout de
AppDataKey
pour accéder à l'état push de l'application ; ajout dePlatformDataKey
pour accéder aux données de la plate-forme ; ajout de la compatibilité avec les espaces de noms dansStateStore
. (I7985e) - Prise en charge des opérations
Equal
etNotEqual
pourDynamicBool
. (I6a0c1)
Modifications apportées à l'API
- La classe
FontStyles
est désormais finale (Iaa2ea) LayoutElementBuilders#FontStyles
est maintenant obsolète. Veuillez utiliserandroidx.wear.protolayout.Typography
ou créer votre propreFontStyle
. (Ic929b)- Masquez l'interface imbriquée
Action#Builder
de l'interfaceAction
. Les implémentations de Builder sont déjà fournies par les classesLoadAction
etLaunchAction
. (I1d70c) - Autoriser l'utilisation de
DynamicFloat
avecFloatProp
. Notez queFloatProp
ne nécessite pas de contraintes de mise en page, car il n'est pas utilisé comme propriété de modification de la mise en page. (I286ac) - Les actions
LoalAction
etSetStateAction
ont été supprimées, car elles n'étaient pas encore réellement prises en charge. (I5d6a6) - Ajout de la prise en charge du format ARGB_8888 pour les ressources d'images intégrées. (I8a07c)
- Renommer
StateEntryValue
enDynamicDataValue
et mettre à jour les API d'état pour utiliserDynamicDataKey
(If1c01) - Nous limitons le nombre d'entrées autorisées dans
StateStore
afin de nous assurer que l'utilisation de la mémoire et le temps de mise à jour de l'état sont bien contenus et contrôlés pour chaque instance deStateStore
. Par conséquent, le développeur doit s'assurer de ne pas avoir plus deMAX_STATE_ENTRY_COUNT
entrées dans la carte, sinon il recevra unIllegalStateException
lors de la création ou de la mise à jour duStateStore
. (Ibadb3) - Masquez les classes
OnLoadTrigger
etOnConditionMetTrigger
, et renommezsetTrigger
ensetCondition
pourOnConditionMetTrigger
. (Ibf629) - Pour des raisons de performances et de compatibilité, les renderers
ProtoLayout
ne sont pas compatibles avec l'ensemble des fonctionnalités des ressourcesAnimatedVectorDrawable
. Nous marquons ces API comme expérimentales jusqu'à ce que nous puissions définir l'ensemble pris en charge. (Ic6daf) - Ajout de types dynamiques pour la distance quotidienne, les calories quotidiennes et les étages quotidiens. Les clés des sources sur l'état de la plate-forme se trouvent désormais sous
PlatformHealthSources.Keys
(Ib7637). - La méthode
Easing.cubicBezier
remplaceCubicBezierEasing.Builder
. La classeEasingFunction
est supprimée et les constantes d'interpolation de cette classe sont désormais directement accessibles depuis l'interfaceEasing
. En outre,setInfiniteRepeatable
est remplacé parINFINITE_REPEATABLE_WITH_RESTART
etINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implémentez
PlatformDataProvider
pour fournir la fréquence cardiaque et le nombre de pas quotidiens. L'interfaceSensorGateway
est supprimée de l'API publique. (I55b84) - Ajoutez
PlatformDataProvider
et mettez à jourStateStore
pour l'enregistrer dansPlatformDataProvider
lorsque la clé compatible du fournisseur est requise par le nœud du pipeline d'expression. (Ib616a) SensorGateway
n'est plusCloseable
, car il ne conserve plus aucun état. (I6b4f7)- Autoriser l'utilisation de
FloatProp
avecDynamicFloat
pour la progression dansCircularProgressIndicator
. Cette fonctionnalité est disponible pour les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu reviendront àstaticValue
s'il est fourni, sinon à 0 (I0d91b). - Les constantes
MultiButtonLayout
ont été refactorisées dans la classeLayoutDefaults.MultiButtonLayoutDefaults
, qui contient désormais celles pour les tailles de bouton en fonction du nombre de boutons dans la mise en page. (I13973) - Prise en charge de l'utilisation de
StringProp
avecDynamicString
dans Material Text. Cette fonctionnalité est disponible pour les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu reviendront à la valeur statique fournie. Mise à jour du type renvoyé parText#getText
:String
remplacé parStringProp
. (I7275b)
Version 1.0.0-alpha09
10 mai 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
. Liste des commits de la version 1.0.0-alpha09
Nouvelles fonctionnalités
- Nous avons ajouté un élément de mise en page d'extension expérimentale. Notez que cette option ne peut pas être utilisée par défaut et nécessite une extension de moteur de rendu capable de comprendre l'élément de mise en page. (I6581d)
- Ajout de la compatibilité d'
StrokeCap
avecArcLine
. (I94951) - Ajout de la prise en charge de l'opération Instant conditionnelle. (I489a7)
- Ajout de la compatibilité avec l'opération de durée conditionnelle. (Iab469)
- Ajout de la possibilité de créer une durée à partir de secondes. (Ib5fa1)
Modifications apportées à l'API
- Les méthodes
enable/disablePlatformSource
ont été supprimées deDynamicTypeEvaluator
. L'appelant doit être responsable des mises à jour. (I78c6d) - Autoriser à limiter la taille des types de données liés. (Ie2966)
- Ajout de la prise en charge de la description dynamique du contenu dans
protolayout-material
. (I62c8e) - Utilisez long et
@IntRange
pour la durée et le délai dans AnimationParameters. (I388b6)
Version 1.0.0-alpha08
19 avril 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
. Liste des commits de la version 1.0.0-alpha08
Nouvelles fonctionnalités
AndroidTextStyle
a été ajouté(e) àLayoutElementBuilders
. (I8d967)- Nous avons ajouté la possibilité de définir l'exclusion de la marge intérieure de la police dans le texte Material
ProtoLayout
. (I17f5d) - ARGB_8888 est désormais compatible avec les images intégrées. (I18c1e)
DynamicColor
est désormais compatible avec l'opérationonCondition
. (I10927)
Modifications apportées à l'API
- Prise en charge d'une durée personnalisée pour l'animation inversée (I3251f)
- Nous avons ajouté le modificateur
SemanticDescription
. De plus,ContentDescription
n'est pas associable. (I3f1d) - La méthode
DynamicBool.isFalse()
est désormais remplacée parDynamicBool.negate()
, etDynamicBool.isTrue()
a été supprimé. De plus, les valeurs NaNDynamicFloat
et la réduction d'unDynamicInt32
à unDynamicFloat
émettent désormais un résultat dynamique non valide. (I6ac1e) - Les formateurs int et float utilisent désormais le modèle Builder. (Ieb213)
Correction de bugs
- La valeur statique de secours a été supprimée des champs animables. (Ifcb01)
DynamicTypeValueReceiver#onPreUpdate
a été supprimé. (I2dc35)- La longueur des chaînes dans les expressions dynamiques est désormais limitée. (I4c93)
- Les dépendances Gradle sont désormais correctement définies sur
api
au lieu deimplementation
lorsque cela est nécessaire. (I40503)
Version 1.0.0-alpha07
5 avril 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
. Liste des commits de la version 1.0.0-alpha07
Nouvelles fonctionnalités
- Ajout de la prise en charge des valeurs dynamiques à
StringProp
(I04342) - Marquer les éléments de mise en page pouvant être liés (Ia110b)
Modifications apportées à l'API
sensorGateway#registerSensorGatewayConsumer
prend le type de données comme paramètre au lieu de la méthode dans Consumer. (Icf314)- Le compte de service (
ObservableStateStore
) a été renomméStateStore
. (Ieb0e2) - Ajout de
DynamicTypeEvaluator.Builder
au lieu d'arguments de constructeur pour autoriser davantage d'arguments facultatifs, y comprisObservableStateStore
qui est désormais défini par défaut sur un magasin vide. (I6f832) - Refactorisation de l'ordre des paramètres dans
DynamicTypeEvaluator
. (Ic1ba4)
Correction de bugs
- Propagation correcte des signaux des sources de capteurs de la plate-forme vers les nœuds en aval (I5a922)
Version 1.0.0-alpha06
22 mars 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
. Liste des commits de la version 1.0.0-alpha06
Nouvelles fonctionnalités
- Nous avons ajouté une API expérimentale permettant d'utiliser la fréquence cardiaque et le nombre de pas quotidiens dans les expressions dynamiques (Ifd711).
- Nous avons ajouté la prise en charge du délai inverse et du délai avant pour les animations. (Ic25f7)
- Nous avons ajouté la compatibilité avec
DynamicColor
pour les bordures et l'arrière-plan. - Nous avons ajouté la compatibilité avec les valeurs dynamiques aux types dans
DimensionBuilder
. - La mise en page et les composants de
tiles-material
vont être déplacés versprotolayout-material
Modifications apportées à l'API
LoadActionListener
a été ajouté(e) àProtoLayoutViewInstance
. (If7806)
Correction de bugs
- Ajout de
FloatNodesTest
(Id7281) - Correction du plantage du moteur de rendu lorsqu'il est impossible de charger le bitmap structuré.
Version 1.0.0-alpha05
8 mars 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
. Liste des commits de la version 1.0.0-alpha05.
Nouvelles fonctionnalités
- Nous avons ajouté une animation expérimentale de mise à jour du contenu à l'objet
Modifiers
. Cette animation se déclenche chaque fois que l'élément (avec ce modificateur) ou l'un de ses enfants change lors d'une mise à jour de la mise en page. (bd03e5d)
Modifications apportées à l'API
- Nous avons ajouté
forwardRepeatDelayMillis
etreverseRepeatDelayMillis
àRepeatable
. Nous avons également renommédelayMillis
enstartDelayMillis
dansAnimationSpec
(Ifb266). - Les méthodes
DynamicTypeEvaluator.bind
acceptent désormais un Executor. (I346ab) - Nous avons ajouté la méthode
startEvaluation
àBoundDynamicType
pour déclencher l'évaluation après la liaison du type dynamique. (I19908)
Correction de bugs
- L'objet Animator sera réutilisé pour les animations ultérieures d'un même élément. (Ia3be9)
Version 1.0.0-alpha04
22 février 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
ObservableStateStore
informe désormais les auditeurs lorsqu'une clé est supprimée.- Nous avons ajouté la version du schéma de rendu et la taille de la police à
DeviceParameters
(qui peut être utilisé pour créer des mises en page de manière conditionnelle en réponse à différentes versions et paramètres de police). - Nous avons ajouté la prise en charge de l'animation des valeurs
DynamicInt32
(I05485). - Nous avons ajouté les déclencheurs
OnLoad
etOnConditionalMet
. Ils peuvent être utilisés pour démarrer des animations compatibles avec un déclencheur. - Nous avons ajouté le poids de la mise en page pour les dimensions développées et la taille minimale pour les dimensions enveloppées.
- Nous avons ajouté des types dynamiques de durée et instantanés. Elles peuvent être utilisées pour représenter un instant ou une durée dans une expression dynamique.
- Nous avons ajouté la compatibilité avec
AnimatedVectorDrawable
etSeekableAnimatedVectorDrawable
en tant que ressources de mise en page.
Modifications apportées à l'API
- Les données des capteurs nécessitent l'API 29 ou version ultérieure. (I8099e)
- Nous avons ajouté deux méthodes d'assistance
launchAction
(pour lancer des activités).
Correction de bugs
set/getSpec
a été renomméset/getAnimationSpec
dans l'animation des vignettes (I3d74b)
Version 1.0.0-alpha03
8 février 2023
Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. Liste des commits de la version 1.0.0-alpha03
Nouvelles fonctionnalités
- Nous avons ajouté
toByteArray()
etfromByteArray()
aux types dynamiques dans la bibliothèque protolayout-express. - Nous avons ajouté
toString()
aux types dynamiques dans la bibliothèque protolayout-expression. - Les types de créations dynamiques sont désormais compatibles avec l'évaluation. La classe
DynamicTypeEvaluator
de la bibliothèque protolayout-expression-pipeline peut être utilisée pour évaluer (et recevoir les valeurs mises à jour) pour un type dynamique précédemment créé (DynamicString
,DynamicFloat
, etc.). - Lorsqu'il est impossible de lire des animations (soit parce qu'elles sont désactivées par l'évaluateur, soit parce que le nombre d'animations en cours d'exécution a atteint la limite définie), les valeurs statiques définies sur le nœud animable sont utilisées pour remplacer l'animation.
Version 1.0.0-alpha02
25 janvier 2023
Publication d'androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
et androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. Liste des commits de la version 1.0.0-alpha02
Nouvelles fonctionnalités
- Les outils de création de mise en page d'
androidx.wear.tiles:tiles
vont être déplacés versandroidx.wear.protolayout:protolayout
. Ceux d'androidx.wear.tiles:tiles
seront abandonnés dans l'une des prochaines versions alpha.
Version 1.0.0-alpha01
11 janvier 2023
Publication d'androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
et androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. Liste des commits de la version 1.0.0-alpha01
Nouvelles fonctionnalités
- Cette version introduit une nouvelle bibliothèque "ProtoLayout Expression" qui permet de créer des expressions à partir de variables dynamiques.