wear protolayout
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
24 de septiembre de 2025 | 1.3.0 | - | - | 1.4.0-alpha01 |
Cómo declarar dependencias
Para agregar una dependencia en wear-protolayout, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio de Maven de Google para obtener más información.
Agrega las dependencias de los artefactos que necesites en el archivo build.gradle
de tu app o módulo:
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") }
Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.
Comentarios
Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.
Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.
Versión 1.4
Versión 1.4.0-alpha01
24 de septiembre de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.4.0-alpha01
. La versión 1.4.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se agregó un método auxiliar para
LayoutModifier
que hace que un elemento aparezca gradualmente a medida que la tarjeta se hace visible. (I38531, b/390345969) - Se agregó
materialScopeWithResources
para admitir el concepto deMaterialScope
de M3 que también se encarga del registro automático de recursos. Se agregaron nuevos métodos de ayuda para imágenes (backgroundImage
avatarImage
y el ícono) que eliminan la necesidad de registrar recursos de forma manual enonTileResourceRequest
cuando se usan. (I525bd, b/428692714) ProtoLayout
asistentes de Kotlin paraImage
yImageResources
para usar conProtoLayoutScope
y el registro automático de recursos (Iada82, b/430584304)- Se agregó un getter para saber cuántas propiedades de Lottie se permiten en la personalización de una animación de Lottie. (I73733, b/436532706)
- Se agregó una API en
AndroidLottieResourceByResId
para permitir la personalización de la animación de Lottie a través de propiedades y se agregó una API para crear una propiedad para el espacio de temas con el ID del espacio al color especificado. (I301b3, b/423581481) - Se agregaron APIs de proveedores para aceptar
PendingIntent
como acción de clic (I01978, b/433802488). - Agrega una nueva API en
Image.Builder
-setImageResource
para establecer el objeto de recurso directamente en la imagen enonTileRequest
, sin necesidad de registrarlo en la asignación enonTileResourcesRequest
. (Ifa69a, b/428693523) - Se agregó el concepto de
ProtoLayoutScope
en preparación para un mejor manejo de recursos en Tiles. (I132ce, b/428692423) ProtoLayout
Material3MaterialScope
ahora expone el campoContext
como público para usarlo en métodos dentro del alcance, sin necesidad de pasarlo. (I0e5cc, b/414559956)- Se hicieron públicas las APIs semánticas de encabezado (I75299, b/413653475).
- Expone las constantes de
ARC_DIRECTION_*
como públicas para usarlas enArc/ArcLine/ArcText/DashedArcLine
. (I83959, b/427556439)
Cambios en la API
- Dimos de baja los métodos
Image.Builder()
yImage.Builder.setResourceId
en favor de la nueva API de registro automático de recursos, disponible en las APIs deImage.Builder(ProtoLayoutScope)
yImage.Builder.setImageResource
que eliminan la necesidad de anularonTileResourcesRequest
. (I7bfe6, b/432758526) - Se trasladaron las APIs para crear
ProtoLayoutScope
de restringidas a públicas. Sin embargo, no se deben usar, ya que el sistema ya controla esas llamadas. (I1d8e8, b/432758251)
Correcciones de errores
- Se agregó la implementación para admitir
PendingIntent
enProtoTiles
(I38167, b/430610429). - Se agregó el método
invalidateLayout
. (Ief898) - Se cambió el valor predeterminado de minSdk de la API 21 a la API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
ImageResource
ahora tiene métodoshashCode
yequals
. (I650ee, b/428692423, b/428693523)- Se agregaron el nuevo mensaje .proto
PendingIntentAction
y su compilador de wrapper (Ie2aca, b/427643502). - Reduce la frecuencia con la que se crea la instancia de
ZoneId
. (I284d3) - Aplica la descripción de contenido predeterminada a la única ranura
textButton
. (I0dc8a, b/415001534) - Se corrigieron los cálculos para ajustar la cantidad máxima de líneas en el renderizador. (I933bc, b/414353620)
Versión 1.3
Versión 1.3.0
4 de junio de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0
. La versión 1.3.0 contiene estas confirmaciones.
Cambios importantes desde 1.2.0
- El diseño de Material 3 llega al reloj con componentes y diseños optimizados para la pantalla redonda y se ajusta de forma adecuada desde tamaños de pantalla pequeños hasta grandes.
- Esto incluye la biblioteca
protolayout-material3
solo para Kotlin con más APIs similares a Compose para los siguientes componentes y funciones: - Tema de color dinámico proveniente del sistema y la carátula del reloj con el tema de Material 3 más reciente para colores, formas y tipografía
MaterialScope
para encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalizacióniconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Todos los componentes funcionan en todos los niveles del SDK y en la versión del renderizador
ProtoLayout
, y proporcionan alternativas adecuadas cuando corresponde.
- Esto incluye la biblioteca
- APIs más compatibles con Kotlin y similares a Compose para elementos base de ProtoLayout
LayoutModifier
con la capacidad de agregar la mayoría de los modificadores como funciones encadenadas (padding
,contentDescription
[incluidoclearSemantics
],background
,clip
,opacity
, etcétera), que se pueden convertir en el objetoModifiers
existenteLayoutColors
yLayoutString
como tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicostext
yfontStyle
- Mejor compatibilidad con mapas para
StateBuilder
, incluidosDynamicDataMap
y métodos de fábrica, comointAppDataKey
, para facilitar la creación de objetosAppDataKey
- Las animaciones de Lottie admiten la opción de establecer diferentes activadores para el inicio de la animación, por ejemplo, cuando se carga el diseño o cuando se hace visible.
- Se mejoró la compatibilidad con los gradientes:
- API de gradiente lineal como parte de
Brush
que se puede usar en modificadores deBackground
para elementos comoBox
,Spacer
, etcétera… - Permite valores de color dinámicos en
ColorStop
que se usan para el gradiente lineal y de barrido - El gradiente radial existente en los objetos de arco ahora admite colores dinámicos y ángulos de inicio y finalización.
- Vinculación de datos de la plataforma en
protolayout-expression
para recibir información cada vez que se cambia la visibilidad del diseño, lo que, por ejemplo, se puede usar para ocultar ciertas partes del diseño mientras se desliza la tarjeta - Se agregó la biblioteca de pruebas (
protolayout-testing
) para facilitar la cobertura de pruebas de unidades para cualquier elemento de ProtoLayout. - Nuevo elemento
DashedArcLine
con un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia delArcLine
existente - Compatibilidad con
ArcSpacer
para establecer su longitud en la dimensión de DP en lugar de grados - Se agregó el eje de redondez
FontSetting
aplicable a algunas fuentes
Versión 1.3.0-rc01
20 de mayo de 2025
Se lanzó androidx.wear.protolayout:protolayout-*:1.3.0-rc01
sin cambios desde la versión anterior. La versión 1.3.0-rc01 contiene estas confirmaciones.
Versión 1.3.0-beta02
7 de mayo de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-beta02
. La versión 1.3.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Realizamos una mejora importante en los valores de diseño de tipografía que se aplican en la API 36 y versiones posteriores. Esto se debe a que, a partir de la API 36, todas las tarjetas estarán en la fuente del sistema, por lo que este cambio introduce una mejor coherencia en el carrusel de tarjetas. (If316f)
- Los compiladores de
Text
,Spacer
,ArcLine
yDashedArcLine
no arrojarán una excepción si no se establecen los valores dinámicos delayoutConstraints
. Ten en cuenta que los renderizadores más antiguos aún requieren que se establezcalayoutConstraints
y omitirán cualquier valor dinámico que no lo tenga establecido. (Ic52e8) - Agrega el modificador semántico de encabezado para indicar que un elemento de diseño es un encabezado de una sección de contenido con fines de accesibilidad y marca el texto en la ranura de título de
primaryLayout
para que sea un encabezado de accesibilidad de forma predeterminada. (Iae1fb) - Se realizó el pulido final de la UX de
primaryLayout
, en el que se redujo el espacio entre la ranura del título y la ranura principal a 4 dp en lugar de 6 dp en pantallas más pequeñas. (I0e056) - Aplica la descripción de contenido predeterminada a
textEdgeButton
. (Ifaf8b) - Se actualizó ligeramente el relleno interno de
avatarButton
. (I0910b)
Versión 1.3.0-beta01
9 de abril de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-beta01
. La versión 1.3.0-beta01 contiene estas confirmaciones.
Nuevas funciones
La versión 1.3.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marque como experimental). Wear ProtoLayout 1.3 incluye las siguientes API y funcionalidades nuevas:
- El diseño de Material 3 llega al reloj con componentes y diseños optimizados para la pantalla redonda y se ajusta de forma adecuada desde tamaños de pantalla pequeños hasta grandes.
- Esto incluye la biblioteca
protolayout-material3
solo para Kotlin con más APIs similares a Compose para los siguientes componentes y funciones: - Tema de color dinámico proveniente del sistema y la carátula del reloj con el tema de Material 3 más reciente para colores, formas y tipografía
MaterialScope
para encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalizacióniconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Todos los componentes funcionan en todos los niveles del SDK y en todas las versiones del renderizador de ProtoLayout, y proporcionan alternativas adecuadas cuando corresponde.
- Esto incluye la biblioteca
- APIs más compatibles con Kotlin y similares a Compose para elementos base de ProtoLayout
LayoutModifier
con la capacidad de agregar la mayoría de los modificadores como funciones encadenadas (padding
,contentDescription
[incluidoclearSemantics
],background
,clip
,opacity
, etcétera), que se pueden convertir en el objetoModifiers
existenteLayoutColors
yLayoutString
como tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicostext
yfontStyle
- Mejor compatibilidad con mapas para
StateBuilder
, incluidosDynamicDataMap
y métodos de fábrica, comointAppDataKey
, para facilitar la creación de objetosAppDataKey
- Las animaciones de Lottie admiten la opción de establecer diferentes activadores para el inicio de la animación, por ejemplo, cuando se carga el diseño o cuando se hace visible.
- Se mejoró la compatibilidad con los gradientes:
- API de gradiente lineal como parte de
Brush
que se puede usar en modificadores deBackground
para elementos comoBox
,Spacer
, etcétera… - Permite valores de color dinámicos en
ColorStop
que se usan para el gradiente lineal y de barrido - El gradiente radial existente en los objetos de arco ahora admite colores dinámicos y ángulos de inicio y finalización.
- Vinculación de datos de la plataforma en
protolayout-expression
para recibir información cada vez que se cambia la visibilidad del diseño, lo que, por ejemplo, se puede usar para ocultar ciertas partes del diseño mientras se desliza la tarjeta - Se agregó la biblioteca de pruebas (
protolayout-testing
) para facilitar la cobertura de pruebas de unidades para cualquier elemento de ProtoLayout. - Nuevo elemento
DashedArcLine
con un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia delArcLine
existente - Compatibilidad con
ArcSpacer
para establecer su longitud en la dimensión de DP en lugar de grados - Se agregó el eje de redondez
FontSetting
aplicable a algunas fuentes
Versión 1.3.0-alpha10
12 de marzo de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha10
. La versión 1.3.0-alpha10 contiene estas confirmaciones.
Nuevas funciones
- Se agregó un asistente para Brush en el modificador Background de Kotlin. (I995de)
- El campo obligatorio Android Context se hizo público en
MaterialScope
para permitir un uso más sencillo en las funciones de los desarrolladores que crean componentes para tarjetas de Material 3. (I7df73)
Cambios en la API
- Se cambió el nombre de la API
platformVisibilityStatus
aPlatformEventSources.isLayoutVisible
y se agregó una nueva API experimentalPlatformEventSources.isLayoutUpdatePending
. (Ie1e04)
Correcciones de errores
- Ahora, los márgenes de
primaryLayout
se redondean correctamente hacia arriba, lo que puede afectar algunos diseños con hasta 2 dp menos de espacio para el espacio principal. (I8f5d3) - Se aclaró el tema de color dinámico predeterminado en los componentes de
ProtoLayout
Material3. (Iff5f3) - Las tipografías
Typography.NUMERAL_*
ya no son tabulares ni de ancho fijo de forma predeterminada. Si el texto tiene una animación, se recomienda agregarle el parámetro de configuraciónFontSetting.tabularNum()
. En todos los demás casos, esta opción de monoespacio no es necesaria y habrá más caracteres disponibles si no la usas. (Id3cd9) - Se aclaró el tema de color dinámico predeterminado en los componentes de
ProtoLayout
Material3. (I9d831)
Versión 1.3.0-alpha09
26 de febrero de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
. La versión 1.3.0-alpha09 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron modificadores experimentales para
enterTransition
yexitTransition
(I4a4d6). - Agregamos una vinculación de plataforma adicional para recibir el estado de visibilidad del diseño completo cada vez que cambia. (I250c3)
- Permite insertar datos de la plataforma y el estado de la app de prueba en
LayoutElementAssertionsProvider
para evaluar valores dinámicos. (Ib5fcb) - Agrega filtros de esquinas a la biblioteca de pruebas de protolayout (Ie2361).
ButtonColors
,CardColors
yProgressIndicatorColors
ahora admiten el método de copia, con la anulación opcional de algunos parámetros. (Ie2054)
Cambios en la API
- Se agregó compatibilidad con la vinculación de datos dinámicos a la biblioteca de pruebas (Ib98de).
- Se corrigió
imageButton
cuando se usa con la funciónbackgroundImage
quitando la superposición. Además, permite que la funciónbackgroundImage
especifique un valor nulo para el color de superposición, lo que significa que no se aplicará la superposición. (Ibec3c)
Correcciones de errores
- Se cambió el método
hasValueOfType
predeterminado para que arrojeUnsupportedOperationException
en lugar deIllegalArgumentException
. (Ia36c3) - Se actualizaron los valores de los tokens de color predeterminados para reflejar la especificación más reciente. (I75d44)
- Se corrigieron problemas de alias visibles en las líneas de arco del renderizador de tarjetas de AndroidX. (I88190)
Versión 1.3.0-alpha08
12 de febrero de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
. La versión 1.3.0-alpha08 contiene estas confirmaciones.
Nuevas funciones
- Agrega el parámetro de lista
FontSetting
para el texto de Material 3. (Ic102d) - Se agregó la clase
DynamicDataMap
, que ahora admiteStateBuilder
para una mejor API de Kotlin con seguridad de tipos para los estados de la app (I012ba). - Se agregaron métodos de fábrica, como
intAppDataKey
, para facilitar la creación de objetosAppDataKey
(Icea2a). DynamicDataValue
ahora tiene un métodohasValueOfType(Class<?>)
además de los métodoshasInt/hasColor/
… (I4f7a6)- Agregamos
errorDim
a ProtoLayout de Material 3ColorScheme
para errores de alta prioridad o acciones de emergencia, como alertas de seguridad. (Ia17bb) - Agregamos una protección contra fallas cuando se accede al parámetro de configuración global de reducir movimiento, que se activaba en algunas plataformas en las que no se proporcionaba ese parámetro. (I01e2c)
Cambios en la API
- Se cambió el nombre de
addKeyToValueMapping
aaddToStateMap
y se quitaron los métodosDynamicDataMap.put
, ya que eran redundantes. (Ibe9dd) - La tipografía de Material 3 ahora admite el eje de variables de redondez para las fuentes del sistema que admiten este eje. ProtoLayout
FontSetting
admite el eje de redondez para las fuentes que lo admiten. (I33eb5) - Se cambió el nombre de
multilineAlignment
a alignment en el método de texto de Material 3. (I2b66b) - Actualiza el indicador de progreso circular para que sea de tipo Box y especifica que
mainContent
enconstructGraphic
también sea de tipo Box (I5a3dc). - Mejor compatibilidad para usar el indicador de progreso circular en el gráfico (I039db)
Correcciones de errores
- Permite valores dinámicos en
ColorStop
y también para los ángulos de inicio y finalización enSweepGradient
. (I0146d) - Se corrigieron errores en Documentos. (I4a63a)
- Se actualizaron los componentes de Material 3 (
graphicCard
yavatarButton
) para proporcionar una alternativa cuando no se admite la dimensión de expansiónweight
(p.ej., por debajo de la API 33). Se actualizó el componente de texto para que recurra aTEXT_OVERFLOW_ELLIPSIZE_END
cuando el renderizador no admitaTEXT_OVERFLOW_ELLIPSIZE
. (I19e2c) - Actualización de la documentación para
PrimaryLayoutMargins
. (Ibaf7b)
Versión 1.3.0-alpha07
29 de enero de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
. La versión 1.3.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
- Se agregó una opción de API para establecer diferentes activadores para las animaciones de Lottie. Además, se agregó una API para los activadores que se activan cuando el diseño está visible (I8272d).
- Se agregaron los modificadores
border
,visibility
yopacity
. (I6d3dd) - Se agregó un botón de avatar al componente Material3 de ProtoLayout. (Idb5ae)
- Ahora permitimos que los márgenes (laterales y, en algunos casos, inferiores) se personalicen en Material 3
primaryLayout
. (Ib22f6) - Agrega la variante segmentada del indicador de progreso circular. (I6a648)
- Se agregó el componente de botón compacto a ProtoLayout Material3. (Ia3c5c)
- Se agregaron componentes de botones con forma de píldora y botones de imagen a ProtoLayout Material3. (Ifb88a)
Cambios en la API
- Ahora,
LayoutModfier.foldIn
se llamafoldRight
para reflejar mejor su comportamiento esperado (Idf242). - El activador de
VisibleOnce
ahora es experimental. (Ib2d26) - Se quitó
withOpacity
de la API pública, ya que existe una alternativa de biblioteca de gráficos. (I030c2) - Se cambiaron los nombres de los métodos de nivel superior en
LayoutString.kt
yLayoutColor.kt
para que sean compatibles con Java. (I7aff0) - Se quitaron las tipografías que no son de ProtoLayout en Material 3. (Idd9ae)
- Se agregó el sufijo Color a los campos de las clases
*Colors
en Material3. (I2d114)
Correcciones de errores
- Agrega la implementación de resguardo de
EdgeButton
para el renderizador anterior sin compatibilidad con esquinas asimétricas. (I63364) - Se agregó una implementación de resguardo del indicador de progreso circular con un renderizador anterior. (I0f134)
Versión 1.3.0-alpha06
15 de enero de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. La versión 1.3.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
LayoutColor
para admitir tipos de color estáticos y dinámicos (I4c89b)- Se agregó el componente
ProtoLayout Material3
textButton. (Id680d) - Se agregó el componente
iconButton
de ProtoLayout Material3. (Ica3f0) - Se agregó el componente de contenedor de botones de Material3 de ProtoLayout. (I17a38)
- Se agregó compatibilidad con los modificadores semánticos encadenables a protolayout-material3 (I4af62).
- Se agregó el elemento
CircularProgressIndicator
de segmento único de Material3 de ProtoLayout (I2c8a2). - Se agregaron los modificadores
padding
ymetadata
(I8720a). - Se agregaron los modificadores
background
,clip
yclickable
(I35478). - Agrega
LinearGradient
al pincel y permite que se use en el modificador de fondo. (Ic4dea) - Se agregó un tamaño pequeño para appCard y
titleCard
. (I91f98) - Se agregó el componente
graphicDataCard
de Material3 de ProtoLayout. (I92be7) - Se agregaron componentes
iconDataCard
ytextDataCard
de Material3 de ProtoLayout. (I4e1e4) - Se agregó el componente
appCard
de Material3 de ProtoLayout. (Id4c57) - Abstrae
EdgeButtonColors
aButtonColors
. (I83624) - Se agregó el componente
titleCard
de Material3 de ProtoLayout. (I2dc72)
Cambios en la API
- La API de ProtoLayout Material3 ahora acepta
LayoutString
para admitir textos estáticos y dinámicos. (I9c24a)
Correcciones de errores
- Se agregó la implementación del renderizador para inflar
DashedArcLine
(I0c700). - Cambio en el renderizador para permitir que
ArcSpacer
tome la longitud en dp. (I1437b)
Versión 1.3.0-alpha05
11 de diciembre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. La versión 1.3.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Se agregó
LayoutString
para admitir campos de cadenas de diseño vinculables. (Ida650) - Se agregó el componente del contenedor de tarjetas
ProtoLayout Material3
. (Ic985a)
Correcciones de errores
- Esta biblioteca ahora usa anotaciones de nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deberían usar el siguiente argumento del compilador para aplicar el uso correcto:
-Xjspecify-annotations=strict
(este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin). (Id1f9b, b/326456246)
Versión 1.3.0-alpha04
13 de noviembre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. La versión 1.3.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- Se actualizó la forma de Material 3 para que sea una clase con campos que contengan el valor de esquina real, igual que en Wear Compose. (Ied8cd)
- Se actualizaron los colores de Material3 para incluir el concepto
ColorScheme
, igual que en Wear Compose. (If645e) - Se agregaron varios comparadores de uso común a la biblioteca de pruebas. (Ie5cec)
Versión 1.3.0-alpha03
30 de octubre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. La versión 1.3.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron
LayoutElementAssertionsProvider
,LayoutElementAssertion
yLayoutElementMatcher
a la biblioteca de pruebas (Id1110).
Versión 1.3.0-alpha02
16 de octubre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. La versión 1.3.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Versión inicial de la biblioteca de Material 3. Incluye componentes
text
,edgeButton
,buttonGroup
yprimaryLayout
.
Correcciones de seguridad
- A partir de este cambio, androidx se compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza tu dependencia de la versión 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
yandroidx.wear.protolayout:protolayout-external-protobuf
a la versión 1.3.0-alpha02 para abordar el riesgo de vulnerabilidad.
Contribución externa
Versión 1.3.0-alpha01
2 de octubre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. La versión 1.3.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se aclaró que la disponibilidad de los nombres de la familia de fuentes Roboto y Roboto Flex depende del dispositivo. (I193be)
- Se habilitó la familia de fuentes Roboto Flex en el renderizador de mosaicos de AndroidX. (I08e94)
Versión 1.2
Versión 1.2.1
16 de octubre de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.1
. La versión 1.2.1 contiene estas confirmaciones.
Correcciones de seguridad
- A partir de este cambio, androidx se compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza tu dependencia de la versión 1.2.0 de
androidx.wear.protolayout:protolayout-proto
yandroidx.wear.protolayout:protolayout-external-protobuf
a la versión 1.2.1 para abordar el riesgo de vulnerabilidad.
Versión 1.2.0
7 de agosto de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0
. La versión 1.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.1.0
FontStyle
se actualizó para admitir fuentes adicionales para los ejes variables y una mejor API de selección de fuentes para admitir las próximas fuentes Flex.- Se agregó compatibilidad con modificadores adicionales:
- Modificador de transformación que ofrece traslación, rotación y escalamiento con o sin animaciones.
- Especificar valores diferentes (horizontal y vertical) para cada radio de esquina
- Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área en la que se puede presionar cualquier elemento que use el modificador Clickable para que sea de al menos
48dp
por48dp
. - Se mejoraron
PrimaryLayout
yEdgeContentLayout
agregandosetResponsiveContentInsetEnabled
para admitir mejor el comportamiento responsivo de estos diseños en diferentes tamaños de pantalla y mejorar la coherencia de los Tiles. - Se mejoró el escalamiento y el no escalamiento del texto de Material para el escalamiento de fuente no lineal de Android 14.
- Se mejoró la compatibilidad con la dirección del diseño de derecha a izquierda en todos los elementos de arco.
Cambios adicionales
- Para obtener un conjunto más completo de los cambios introducidos en la versión 1.1.0, consulta las notas de la versión beta01.
Versión 1.2.0-rc01
24 de julio de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. La versión 1.2.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Corregimos el chip de Material estándar para que se pueda usar como ícono solo si no se pasa ninguna etiqueta principal o secundaria. (Iceef9)
- Se actualizó la documentación de los diseños de Material para incluir imágenes de la página correspondiente y facilitar la comprensión de los diseños. (I0256a)
Versión 1.2.0-beta01
10 de julio de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. La versión 1.2.0-beta01 contiene estas confirmaciones.
Nuevas funciones
La versión 1.2.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marque como experimental). Wear ProtoLayout 1.2 incluye las siguientes API y funcionalidades nuevas:
FontStyle
se actualizó para admitir fuentes adicionales de la siguiente manera:- Configurar diferentes parámetros de variación de fuentes, como
FontSetting.weight
yFontSetting.width
- Establecer el mismo ancho para todos los caracteres numéricos: cifras tabulares (parámetro de configuración de la función de fuente
FontSetting.tnum
) - Se mejoraron las APIs de selección de fuentes para admitir las próximas fuentes flexibles especificando los nombres de las familias de fuentes preferidas que se usarán.
- Configurar diferentes parámetros de variación de fuentes, como
- Se extendió el modificador
Corner
para admitir la especificación de cadaCornerRadius
con valores horizontales y verticales separados para permitir la creación de elementos con esquinas asimétricas. - Se agregó un nuevo modificador
Transformation
que ofrece traslación, rotación y escalamiento deLayoutElement
. Estas transformaciones se pueden animar con valores dinámicos. - Se agregó
setArcDirection
con las opcionesClockwise
,CounterClockwise
yNormal
a todos los elementos de arco (Arc
,ArcLine
yArcText
) para mejorar la compatibilidad con diferentes direcciones de diseño (como LTR y RTL). - Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área en la que se puede presionar cualquier elemento que use el modificador
Clickable
para que sea de al menos48dp
por48dp
. - Se mejoraron
PrimaryLayout
yEdgeContentLayout
agregandosetResponsiveContentInsetEnabled
para admitir mejor el comportamiento responsivo de estos diseños en diferentes tamaños de pantalla y mejorar la coherencia de los Tiles. Se agregó una advertencia del verificador de código para sugerir el uso de estas APIs con una solución rápida. - Se mejoró el escalamiento y el no escalamiento del
Text
de Material para el escalamiento de fuente no lineal de Android 14.
Cambios en la API
- Se quita el nombre de la familia de fuentes predeterminada (
DEFAULT_SYSTEM_FONT
), ya que se da por sentado que no se usa la API depreferredFontFamilies
. (I39dab) - El parámetro que se pasa a
FontSetting.width
debe ser positivo. (I1266f)
Versión 1.2.0-alpha05
26 de junio de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. La versión 1.2.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Agrega el método
hasText
aMaterial.CompactChip
para verificar si se configuró el contenido del texto. (I6e8fc)
Cambios en la API
- Las constantes
FontFamily
se mueven aFontStyle
en lugar de a su clase Builder. (I06ced) - Se actualizaron las APIs de
FontSetting.weight
yFontSetting.width
para incluir anotaciones de rango y cambiar el parámetro de peso a int. (Ia726c)
Correcciones de errores
- Los textos no escalables de la biblioteca de Material ahora funcionan correctamente con el escalamiento de fuente no lineal de Android 14. (I6601e)
Versión 1.2.0-alpha04
29 de mayo de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. La versión 1.2.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se agregó la API de esquinas asimétricas para poder especificar por separado el radio de cada esquina con 2 valores. (Icbd69)
- Se extendió la API de
FontSetting
para incluir lo siguiente: - Se agregó la API de familia de fuentes a
FontStyle
para permitir especificar una lista de orden de las familias de fuentes que se deben usar. (Iba9f5) - Se cambiaron los nombres de las constantes para la altura del espacio entre el contenido y la etiqueta secundaria en el
LayoutDefaults
de Material que, inicialmente, tenían el prefijo "Contenido de borde" para que fueran más genéricas, ya que se pueden aplicar tanto aPrimaryLayout
como aEdgeContentLayout
. (I4dc32)
Correcciones de errores
- Se cambió el nombre de los ejes de fuentes variables de
axisName
aaxisTag
. (I02ba3)
Versión 1.2.0-alpha03
14 de mayo de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. La versión 1.2.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregó una API para establecer valores de peso personalizados para
FontStyle
. (I7390a)
Correcciones de errores
- Se corrigió la falla en
getTouchDelegateInfo
debido a un mapa de destino vacío. (I2accf)
Versión 1.2.0-alpha02
1 de mayo de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. La versión 1.2.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Agregamos compatibilidad para inhabilitar la respuesta visual de ondulación en elementos individuales en los que se puede hacer clic. (If1ede)
- Se quitó la API de transformación de
ArcModifiers
, ya que no admite esa función (Ic0827). - El compilador de
ArcDirectionProp
ahora espera un valor en el constructor. (I76ada) - El método
PlatformDataValues.Builder.putAll
permitirá combinar unPlatformDataValue
en otro. (I50ba3) - El nombre de
Text#setIsScalable
cambió porText#setScalable
. (If920e) - El texto de Material puede establecer si se debe usar un tamaño escalable (crece cuando se cambia el tamaño de la fuente del usuario) o no. (Ibc849)
- Agregamos la opción para establecer la descripción del contenido en
TitleChip
. (I5d21f) - Se corrigió
CompactChip
para que funcione correctamente solo con el ícono y se actualizó la API para permitir esta opción. (I6589e)
Correcciones de errores
- Se corrigió un problema de posible duplicación de datos de la plataforma durante la inicialización. (Iba0fd)
- Se introduce un nuevo getter en
DynamicDataNode
para recuperar el costo del nodo. El costo se usa cuando se adquiere una cuota de nodos dinámicos. Actualmente, los nodos con valores fijos tendrán un costo de 0, y todos los demás nodos tendrán un costo de 1. (Ia33e1) - Quita la lógica de recuento de
NO_OP_QUOTA_MANAGER
. (Ib50b8) - Agregamos una regla de lint para informar una advertencia cuando se usa
PrimaryLayout
sinsetResponsiveContentInsetEnabled
y proporcionar una solución rápida. (I12025) - Hay un límite para la cantidad de nodos de expresiones dinámicas. (Iffae8)
Versión 1.2.0-alpha01
6 de marzo de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Los elementos
ProtoLayout Arc
ahora tienen la opción de agregarArcDirection
(Clockwise
,Counterclockwise
oNormal
). Agregar este comportamiento aArc
,ArcLine
oArcText
corregirá su comportamiento en los diseños de derecha a izquierda. (I90699) EdgeContentLayout
se actualizó con un nuevo establecedorsetResponsiveContentInsetEnabled
para lograr una mejor alineación con los lineamientos de UX, coherencia en las tarjetas con la etiqueta principal en la parte superior en una posición fija y una inserción adaptable para las etiquetas. (I60175)- Agregamos
PrimaryLayout.setResponsiveContentInsetEnabled
que agrega una inserción adaptable a la etiqueta principal, la etiqueta secundaria y el chip inferior de este diseño para evitar que el contenido se salga del borde de la pantalla. (I0c457) - Se agregó un método para quitar los márgenes exteriores de
CircularProgressIndicator
, de modo que se pueda usar como un componente más pequeño. (I55c06)
Cambios en la API
- De forma predeterminada, el renderizador de tarjetas ahora excluye el padding de la fuente en todos los elementos de texto, sin opción para incluirlo. (I3e300)
Correcciones de errores
- Se corrigió el problema de alineación del texto cuando se usan los parámetros de elipsis, espaciado entre letras y alineación central en Text. (I716c7)
- Se agregó una solución alternativa para un problema de dibujo de arco de Skia. (I08f09)
- Se corrigió la dirección de dibujo de
ArcLine
para los diseños de derecha a izquierda. (I6c141)
Versión 1.1
Versión 1.1.0
7 de febrero de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0
. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde 1.0.0
- Se agregó compatibilidad con gradientes y una mejor representación de longitudes superiores a 360 grados en
ArcLine
. - El formato de fecha y hora admite diferentes zonas horarias para los tipos de datos dinámicos.
- Mejores opciones de ajuste automático de tamaño y de elipsis para controlar el texto truncado
- Spacer admite dimensiones expandidas con un peso opcional.
- Anotación de requisito de versión del esquema para todas las APIs de
ProtoLayout
. - Se extendió el área objetivo de cualquier elemento
Clickable
a 48 dp x 48 dp para satisfacer los requisitos de accesibilidad. - El padding de la fuente está desactivado de forma predeterminada y es el único comportamiento en todos los elementos Text y componentes de Material que contienen texto.
Cambios adicionales
- Para obtener un conjunto más completo de los cambios introducidos en la versión 1.1.0, consulta las notas de la versión beta01.
Versión 1.1.0-rc01
24 de enero de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. La versión 1.1.0-rc01 contiene estas confirmaciones.
Correcciones de errores
PlatformTimeUpdateNotifierImpl
se marca inmediatamente después de habilitar la actualización. (I77145)- Se corrigió
CircularProgressIndicator
para los diseños de RTL. A partir de ahora, girará en el sentido de las agujas del reloj en todos los casos. (I95ee3) - Se agregó una solución alternativa para un problema de dibujo de arco de Skia. (I08f09)
Versión 1.1.0-beta01
10 de enero de 2024
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. La versión 1.1.0-beta01 contiene estas confirmaciones.
Nuevas funciones
La versión 1.1.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marque como experimental). Wear ProtoLayout 1.1 incluye las siguientes funciones y APIs nuevas:
ArcLine
ahora admite el gradiente agregandoBrush
conSweepGradient
y teniendo una sombra en el tope para representar mejor las longitudes mayores a 360 grados agregandoShadow
en elStrokeCap
existente.DynamicInstant
admite el formato de fecha y hora con zona.DynamicInstant
yDynamicDuration
se pueden usar como tipos de datos de estado o de plataforma.- Función de ajuste automático del tamaño del texto que permite establecer varios tamaños en
FontStyle.setSizes
, en la que el tamaño del texto se ajustará automáticamente según el espacio que tenga dentro del elemento superior. Además, mejoramos las opciones de elipsis para el texto que se desborda agregandoTEXT_OVERFLOW_ELLIPSIZE
y dejando de usarTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
ahora admite tener dimensiones expandidas con un peso opcional. Para compilarExpandedDimensionProp
, agregamos un método de ayudaDimensionBuilders.weight
.- Se agregó compatibilidad para ocultar y mostrar de forma dinámica elementos de diseño con
Modifier.visible
. Esto incluye tener valores dinámicos enBoolProp
. - Todas las APIs de
ProtoLayout
ahora tienen una anotación de requisito de versión del esquema, y la versión se puede verificar antes de llamar a una API más reciente. - Todos los elementos que tienen
Clickable
ahora tienen su área de destino extendida a, al menos, 48 x 48 en el renderizador para satisfacer mejor los requisitos de accesibilidad. - Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuentes de forma predeterminada en todos los elementos
Text
. Además, se quitaronAndroidTextStyle
y los métodos de configuración relacionados de la API pública, con las siguientes correcciones de errores: - Se agregó un setter para posicionar el contenido del borde en
EdgeContentLayout
, de modo que se pueda posicionar antes que otro contenido. - Se lanza una excepción de forma coherente cuando se encuentra un valor de enumeración no reconocido.
- Invalida el resultado de una expresión cuando genera un valor numérico no válido (NaN o infinito) o arroja un
ArithmeticException
.
Cambios en la API
- Se actualizaron las APIs de
SweepGradient
para permitir la aceptación de colores oColorStops
en el constructor. (I6676f)
Correcciones de errores
- Se agregó una API restringida y compatibilidad con el renderizador para establecer una dirección en la que se dibujan los elementos de arco. (Idef5a)
- Si no se especifica,
RoundMode
se establece de forma predeterminada comoFloor
enFloatToInt32Node
. El nodo seguirá arrojando una excepción si no se reconoce elRoundMode
proporcionado. (I1b2d8)
Versión 1.1.0-alpha04
13 de diciembre de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. La versión 1.1.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- La clase
VersionInfo
no implementa la interfazComparable
. (I8d13c) - El renderizador ahora admite la opción
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085)
Cambios en la API
- La opción de desbordamiento de texto
TEXT_OVERFLOW_ELLIPSIZE_END
ya no está disponible. Usa la nueva APITEXT_OVERFLOW_ELLIPSIZE
, que tiene un comportamiento muy similar. (I822d8) - Siguiendo otras iniciativas de Material Components y Compose, ahora desactivamos el padding de fuentes de forma predeterminada en todos los elementos Text. Además, se quitaron
AndroidTextStyle
y los métodos de configuración relacionados de la API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) - Se reemplazó
Modifier.hidden
porModifier.visible
(I56902). FontStyle#setSizes
ahora acepta int en lugar de argumentosSpProp
. (I02b37)
Correcciones de errores
- Arroja una excepción cuando se encuentra un valor de enumeración no definido o no reconocido. (I9d2cf)
- Refactoriza
DynamicTypeBindingRequest
. (I27b57) - Invalida el resultado de una expresión cuando genera un valor numérico no válido (NaN o infinito) o arroja un
ArithmeticException
. (I681ae)
Versión 1.1.0-alpha03
29 de noviembre de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
. La versión 1.1.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad experimental para ocultar o mostrar elementos de diseño de forma dinámica (I64a78).
- Se agregó compatibilidad con valores dinámicos a
BoolProp
(I2fe96). - Se agregó una anotación de requisito de versión de esquema a las APIs de
ProtoLayout
(I0f03c). - Se extendió la API con la nueva opción en
TextOverflow
para agregar puntos suspensivos al texto en un contenedor principal fijo, incluso cuando no se alcanza la cantidad máxima de líneas (pero no hay suficiente espacio para el texto). (I110a9) - Se agregó el método auxiliar
DimensionBuilders.weight
para compilarExpandedDimensionProp
con peso. (I4f72b) DynamicInstant
yDynamicDuration
se pueden usar como tipos de datos de estado o de plataforma. (I6819f)
Cambios en la API
- Se actualizó la API para ocultar
DynamicZonedDateTime
y trasladar todas sus operaciones aDyanamicInstant
(I34b94). - Ahora, Spacer admite la dimensión Expanded para el ancho y la altura. (Ie7c94)
- Se agregó compatibilidad con la extensión del área de destino del clic en Renderer (I39c79).
Versión 1.1.0-alpha02
15 de noviembre de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
. La versión 1.1.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Se agregó un campo
ArcLine
StrokeCap
Shadow
a la API. (I830ec) - Se extendió la API para poder especificar el ancho o la altura del elemento Spacer que se expandirá. (I757ca)
- Agregamos una API experimental para ajustar automáticamente el tamaño del texto según el espacio que tiene dentro del elemento superior. (Ibbe63)
- Se admite el tamaño mínimo para hacer clic (I178e3).
- Se agregó compatibilidad con el renderizador para
StrokeCap
Shadow
. (I48b17) - Se agregó compatibilidad con el renderizador para el gradiente de barrido en
ArcLine
. (I4d5bb)
Versión 1.1.0-alpha01
18 de octubre de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
. La versión 1.1.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Se agregó una opción de pincel a
Arcline
, con compatibilidad paraSweepGradient
. (Ie7ce3) - Se agregó compatibilidad con el formato de fecha y hora por zonas. (Ibfae0)
- Se agregaron los Wrappers de Java y los protos necesarios para el formato de fecha y hora zonales. (I97126)
- Se agregaron métodos get para leer el valor almacenado en un
DynamicDataValue
. (Ie6cea) - Se agregó un setter para posicionar el contenido del borde en
EdgeContentLayout
, de modo que se pueda posicionar antes que otro contenido. (Ie8e8a)
Correcciones de errores
- Se corrigió un problema por el que una expresión con varios registros de fuentes de datos de tiempo no se actualizaba de inmediato. (I8e1a8)
- Se corrigió un error para centrar el elemento raíz durante las actualizaciones de diferencias. (Ie48f7)
- Los valores de restricción de diseño no establecidos (o vacíos) ya no se ignorarán. (Ibc785)
- Se redujo la demora entre el momento en que un diseño se vuelve visible y el momento en que se inicializan sus nodos de canalización. (I38d4e)
Versión 1.0
Versión 1.0.0
9 de agosto de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0
. La versión 1.0.0 contiene estas confirmaciones.
Funciones principales de la versión 1.0.0
La biblioteca de ProtoLayout introduce APIs para crear diseños y expresiones que se pueden usar en diferentes plataformas de Wear OS. Por ejemplo, la biblioteca de Tiles usa estas APIs para admitir la vinculación de datos de la plataforma (para actualizaciones más rápidas de los datos de la tarjeta) y las animaciones.
Versión 1.0.0-rc01
26 de julio de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-rc01
. La versión 1.0.0-rc01 contiene estas confirmaciones.
- Para migrar de Tarjetas a
ProtoLayout
, sigue las instrucciones que se indican aquí.
Cambios en la API
- Quitamos los métodos
setLayoutConstraintForDynamicAnchorAngle
ygetLayoutConstraintForDynamicAnchorAngle
del elemento Arc. Estos métodos se agregaron por error y no tuvieron ningún efecto en el diseño proporcionado. (If7d01) - Limitamos la profundidad máxima que puede tener el diseño de un
ProtoLayout
a 30LayoutElements
anidados. (I8a74b)
Correcciones de errores
- Agregamos una verificación para arrojar una excepción si se configuró
DynamicColor
para unSpanText
. (I0e5bc) - Se aclaró que la unidad de la fuente de datos
DAILY_CALORIES
es kcal. (Iaa785)
Versión 1.0.0-beta01
21 de junio de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-beta01
. La Versión 1.0.0-beta01 contiene estas confirmaciones.
Nuevas funciones
- Permite configurar el reloj para las pruebas de vinculación de tiempo. (I05622)
Cambios en la API
PlatformDataReceiver.onData()
yStateBuilders.Builder.addKeyToValueMapping
ahora aceptan la asignación con seguridad de tipos deDynamicDataKey
aDynamicDataValue
en lugar de elementos genéricos no seguros. Esto significa queDynamicDataValue
ahora se escribe con suDynamicType
. Las constantes deHEART_RATE_ACCURACY_X
se movieron a la raíz dePlatformHealthSources
para que coincidan con la posición de otras constantes de Android. Las constantes int deHEART_RATE_ACCURACY_X
ahora se usan directamente enDynamicHeartRateAccuracy.constant()
yDynamicHeartRateAccuracy.dynamicDataValueOf()
en lugar de la constante de valor. (I82ff5)- La clase
PlatformHealthSources.Constants
se podía crear instancias por error. Ya se solucionó este problema. (Icb849) PlatformTimeUpdateNotifier#setReceiver
ahora recibeRunnable
en lugar de la funciónSupplier
yExecutor
para notificar. (I9d938)- Cambiamos el tipo de parámetro en
PlatformTimeUpdateNotifier#setReceiver
deCallable
aSupplier
. (I664bf) CompactChip
yTitleChip
ahora admiten la adición de un ícono. (I5a01e)
Correcciones de errores
- Se actualizaron los mensajes de Prop con campos dinámicos para usar oneof en su lugar (I81739).
- Se reutilizó la implementación de los métodos setter para las sobrecargas que tienen métodos setter (Ied70c).
- Se registran correctamente las huellas dactilares en los métodos de configuración que tienen sobrecargas (I86ed2).
Versión 1.0.0-alpha11
7 de junio de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
. La versión 1.0.0-alpha11 contiene estas confirmaciones.
Nuevas funciones
- Agregamos un
PlatformDataKey
para la precisión de la frecuencia cardíaca. (I7f9b8)
Cambios en la API
- Se cambió el nombre de
StateBuilders#getIdToValueMapping
agetKeyToValueMapping
y se modificó el tipo de datos que se muestra aMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae) - Se convirtió
StateStore
en una clase final (I408ca). - La interfaz
TimeGateway
se reemplazó porPlatformTimeUpdateNotifier
en la bibliotecaprotolayout-expression-pipeline
, que proporciona la frecuencia deseada para actualizar los datos de tiempo. (I60869) - Se cambió el nombre de
register
/unregisterForData
enPlatformDataProvider
aset
/clearReceiver
(I14b02). - En Material Text, se cambió el nombre de
getExcludeFontPadding
ahasExcludeFontPadding
. (Iea01d) - Se agregó el setter para alinear perfectamente la etiqueta a todos los componentes de chip. Ahora todos los chips tienen aplicado el objetivo mínimo de toque. (I8ae92)
- El nombre de
LayoutDefaults#BUTTON_MAX_NUMBER
cambió porMAX_BUTTONS
. (I84788) - El nombre de
DAILY_DISTANCE
cambió porDAILY_DISTANCE_M
. (I4f758)
Correcciones de errores
- Se actualizaron los documentos de los tipos de propiedades para aclarar por qué se aplica el valor estático. Especifica el valor predeterminado que se usa si no se proporcionó un valor estático. (I155aa)
- Los espacios de nombres
PlatformDataKey
deben seguir la convención de nomenclatura de Java. (I47bda)
Versión 1.0.0-alpha10
24 de mayo de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Nuevas funciones
- Se agregó
AppDataKey
para acceder al estado de la app enviado por inserción,PlatformDataKey
para acceder a los datos de la plataforma y compatibilidad con espacios de nombres enStateStore
. (I7985e) - Admite las operaciones
Equal
yNotEqual
paraDynamicBool
. (I6a0c1)
Cambios en la API
- La clase
FontStyles
ahora es final (Iaa2ea). LayoutElementBuilders#FontStyles
quedó obsoleto. Usaandroidx.wear.protolayout.Typography
o crea tu propioFontStyle
. (Ic929b)- Se ocultó la interfaz anidada
Action#Builder
de la interfazAction
. Las clasesLoadAction
yLaunchAction
ya proporcionan implementaciones de Builder. (I1d70c) - Permite usar
DynamicFloat
conFloatProp
. Ten en cuenta queFloatProp
no requiere restricciones de diseño, ya que no se usa como una propiedad que cambia el diseño. (I286ac) - Se quitaron las acciones
LoalAction
ySetStateAction
porque aún no eran compatibles. (I5d6a6) - Se agregó compatibilidad con el formato ARGB_8888 para los recursos de imágenes intercaladas. (I8a07c)
- Se cambió el nombre de
StateEntryValue
porDynamicDataValue
y se actualizaron las APIs de estado para usarDynamicDataKey
(If1c01). - Limitamos la cantidad de entradas permitidas en
StateStore
para garantizar que el uso de la memoria y el tiempo de actualización del estado estén bien contenidos y controlados para cada instancia deStateStore
. Como resultado, el desarrollador debe asegurarse de no tener más deMAX_STATE_ENTRY_COUNT
entradas en el mapa; de lo contrario, recibirá unIllegalStateException
cuando cree o actualice elStateStore
. (Ibadb3) - Se ocultaron las clases
OnLoadTrigger
yOnConditionMetTrigger
, y se cambió el nombre desetTrigger
asetCondition
paraOnConditionMetTrigger
. (Ibf629) - Por motivos de rendimiento y compatibilidad, los renderizadores de
ProtoLayout
no admitirán el conjunto completo de funciones en los recursos deAnimatedVectorDrawable
. Marcaremos esas APIs como experimentales hasta que podamos definir el conjunto compatible. (Ic6daf) - Se agregaron tipos dinámicos para la distancia diaria, las calorías diarias y los pisos diarios. Las claves de las fuentes de estado de la plataforma ahora se encuentran en
PlatformHealthSources.Keys
(Ib7637). - El método
Easing.cubicBezier
reemplaza aCubicBezierEasing.Builder
. Con eso, se quita la claseEasingFunction
y las constantes de aceleración de esa clase ahora son accesibles directamente desde la interfazEasing
. Además,setInfiniteRepeatable
se reemplazó porINFINITE_REPEATABLE_WITH_RESTART
yINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implementa
PlatformDataProvider
para proporcionar la frecuencia cardíaca y los pasos diarios. Se quitó la interfazSensorGateway
de la API pública. (I55b84) - Agrega
PlatformDataProvider
y actualizaStateStore
para registrarse enPlatformDataProvider
cuando el nodo de la canalización de expresiones requiera la clave admitida del proveedor. (Ib616a) SensorGateway
ya no esCloseable
, ya que no mantiene ningún estado. (I6b4f7)- Permite usar
FloatProp
conDynamicFloat
para el progreso enCircularProgressIndicator
. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores antiguos recurrirán astaticValue
si se proporciona, o bien a 0 (I0d91b). - Las constantes de
MultiButtonLayout
se refactorizaron en la claseLayoutDefaults.MultiButtonLayoutDefaults
, que ahora contiene las de los tamaños de los botones según la cantidad de botones en el diseño. (I13973) - Se agregó compatibilidad para usar
StringProp
conDynamicString
en Material Text. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores antiguos recurrirán al valor estático proporcionado. Se actualizó el tipo de datos que se muestra deText#getText
deString
aStringProp
. (I7275b)
Versión 1.0.0-alpha09
10 de mayo de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Nuevas funciones
- Agregamos un elemento de diseño de extensión experimental. Ten en cuenta que esto no se puede usar de forma predeterminada y requiere una extensión de renderizador capaz de comprender el elemento de diseño. (I6581d)
- Se agregó compatibilidad con
StrokeCap
paraArcLine
. (I94951) - Se agregó compatibilidad con la operación instantánea condicional. (I489a7)
- Se agregó compatibilidad con la operación de duración condicional. (Iab469)
- Se agregó compatibilidad para crear duraciones a partir de segundos. (Ib5fa1)
Cambios en la API
- Se quitaron los métodos
enable/disablePlatformSource
deDynamicTypeEvaluator
. El llamador debe ser responsable de las actualizaciones. (I78c6d) - Permite limitar el tamaño de los tipos de datos vinculados. (Ie2966)
- Se agregó compatibilidad con la descripción de contenido dinámico en
protolayout-material
. (I62c8e) - Usa long y
@IntRange
para la duración y la demora en AnimationParameters. (I388b6)
Versión 1.0.0-alpha08
19 de abril de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Nuevas funciones
- Se ha agregado a
AndroidTextStyle
aLayoutElementBuilders
. (I8d967) - Agregamos compatibilidad para configurar el padding de fuentes excluyente en el texto de Material de
ProtoLayout
. (I17f5d) - Ahora se admite ARGB_8888 para las imágenes intercaladas. (I18c1e)
DynamicColor
ahora admite la operaciónonCondition
. (I10927)
Cambios en la API
- Se agregó compatibilidad con la duración personalizada para la animación inversa (I3251f).
- Agregamos el modificador
SemanticDescription
. Además,ContentDescription
no se puede vincular. (I3f1d) - El método
DynamicBool.isFalse()
ahora se reemplaza porDynamicBool.negate()
y se quitaDynamicBool.isTrue()
. Además, los valores NaNDynamicFloat
y el estrechamiento de unDynamicInt32
a unDynamicFloat
ahora emiten un resultado dinámico no válido. (I6ac1e) - Los formateadores de int y float ahora usan el patrón Builder. (Ieb213)
Correcciones de errores
- Se quitó el valor estático de resguardo de los campos que se pueden animar. (Ifcb01)
- Se quitó
DynamicTypeValueReceiver#onPreUpdate
. (I2dc35) - Ahora, la longitud de las cadenas en las expresiones dinámicas tiene un límite. (I4c93)
- Ahora, las dependencias de Gradle se configuran correctamente en
api
en lugar deimplementation
cuando es necesario. (I40503)
Versión 1.0.0-alpha07
5 de abril de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
. La versión 1.0.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con valores dinámicos a
StringProp
(I04342). - Marcar elementos de diseño vinculables (Ia110b)
Cambios en la API
sensorGateway#registerSensorGatewayConsumer
toma el tipo de datos como parámetro en lugar del método en Consumer. (Icf314)- El nombre de
ObservableStateStore
cambió porStateStore
. (Ieb0e2) - Se agregó
DynamicTypeEvaluator.Builder
en lugar de argumentos de constructor para permitir más argumentos opcionales, incluidoObservableStateStore
, que ahora tiene como valor predeterminado un almacén vacío. (I6f832) - Se refactorizó el orden de los parámetros en
DynamicTypeEvaluator
. (Ic1ba4)
Correcciones de errores
- Propaga correctamente los indicadores de las fuentes de sensores de la plataforma a los nodos posteriores (I5a922).
Versión 1.0.0-alpha06
22 de marzo de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
. La versión 1.0.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Agregamos una API experimental para usar la frecuencia cardíaca y los pasos diarios en expresiones dinámicas (Ifd711).
- Agregamos compatibilidad con la demora hacia atrás y hacia adelante para las animaciones. (Ic25f7)
- Agregamos compatibilidad con
DynamicColor
a Border y Background. - Se agregó compatibilidad con valores dinámicos a los tipos en
DimensionBuilder
. - El diseño y los componentes de
tiles-material
se trasladarán aprotolayout-material
Cambios en la API
- Se ha agregado a
LoadActionListener
aProtoLayoutViewInstance
. (If7806)
Correcciones de errores
- Se agregó
FloatNodesTest
(Id7281). - Se corrigió la falla del renderizador que se producía cuando no se podía cargar el mapa de bits estructurado.
Versión 1.0.0-alpha05
8 de marzo de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- Agregamos una animación experimental de "actualización de contenido" al objeto
Modifiers
. Esta animación se activará cada vez que el elemento (con este modificador) o uno de sus elementos secundarios cambie durante una actualización del diseño. (bd03e5d)
Cambios en la API
- Agregamos
forwardRepeatDelayMillis
yreverseRepeatDelayMillis
aRepeatable
. También cambiamos el nombre dedelayMillis
enAnimationSpec
astartDelayMillis
(Ifb266). - Los métodos
DynamicTypeEvaluator.bind
ahora aceptan un Executor. (I346ab) - Agregamos el método
startEvaluation
aBoundDynamicType
para activar la evaluación después de que se vincula el tipo dinámico. (I19908)
Correcciones de errores
- El objeto Animator se reutilizará para las animaciones posteriores de un solo elemento. (Ia3be9)
Versión 1.0.0-alpha04
22 de febrero de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
ObservableStateStore
ahora también informa a los objetos de escucha cuando se quita una clave.- Agregamos la versión del esquema del renderizador y el factor de escala de la fuente a
DeviceParameters
(que se puede usar para crear diseños de forma condicional en respuesta a diferentes versiones y parámetros de configuración de fuentes). - Se agregó compatibilidad para animar valores de
DynamicInt32
(I05485). - Agregamos activadores
OnLoad
yOnConditionalMet
. Se pueden usar para iniciar animaciones que admiten un activador. - Agregamos un peso de diseño para las dimensiones expandidas y un tamaño mínimo para las dimensiones ajustadas.
- Agregamos tipos dinámicos instantáneos y de duración. Se pueden usar para representar un instante o una duración en una expresión dinámica.
- Agregamos compatibilidad con
AnimatedVectorDrawable
ySeekableAnimatedVectorDrawable
como recursos de diseño.
Cambios en la API
- Los datos de sensores requieren la API nivel 29 o superior. (I8099e)
- Agregamos dos métodos auxiliares
launchAction
(para iniciar actividades).
Correcciones de errores
- Se cambió el nombre de
set/getSpec
aset/getAnimationSpec
en la animación de tarjetas (I3d74b).
Versión 1.0.0-alpha03
8 de febrero de 2023
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se agregaron
toByteArray()
yfromByteArray()
a los tipos dinámicos en la biblioteca protolayout-express. - Se agregó
toString()
a los tipos dinámicos en la biblioteca protolayout-expression. - Se agregó compatibilidad con la evaluación de los tipos dinámicos. La clase
DynamicTypeEvaluator
de la biblioteca protolayout-expression-pipeline puede usarse para evaluar (y recibir valores actualizados) para un tipo dinámico que se creó anteriormente (DynamicString
,DynamicFloat
, …) - Cuando no se puedan reproducir las animaciones (ya sea porque están inhabilitadas por el evaluador o porque la cantidad de animaciones en ejecución alcanzó el límite establecido), se usarán los valores estáticos establecidos en el nodo que se puede animar para reemplazar la animación.
Versión 1.0.0-alpha02
25 de enero de 2023
Lanzamiento de androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
y androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Los compiladores de diseño de
androidx.wear.tiles:tiles
se trasladarán aandroidx.wear.protolayout:protolayout
. Los que se encuentran enandroidx.wear.tiles:tiles
dejarán de estar disponibles en una de las próximas versiones alfa.
Versión 1.0.0-alpha01
11 de enero de 2023
Se lanzaron androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
y androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- En esta versión, se presenta una nueva biblioteca llamada "ProtoLayout Expression" que se utiliza para crear expresiones a partir de variables dinámicas.