wear protolayout
| Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
|---|---|---|---|---|
| 22 de octubre de 2025 | 1.3.0 | - | - | 1.4.0-alpha02 |
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-alpha02
22 de octubre de 2025
Lanzamiento de androidx.wear.protolayout:protolayout-*:1.4.0-alpha02. La versión 1.4.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Se agregó una nueva fuente de eventos de la plataforma (
isInAmbientMode) que describe si el dispositivo está en modo ambiente o no (Ief832).
Cambios en la API
- El
PendingIntentclickableahora acepta una acción de resguardo (LoadAction/LaunchAction) para usar cuando elPendingIntentno sea compatible con el renderizadorProtoLayout. La acción de resguardo se seleccionará y colocará automáticamente en el diseño cuando la versión del Renderer sea inferior a la que admitePendingIntent. (I6eee2, b/450259727) - El campo
protoLayoutScopedentro deMaterialScopeahora esNonNullpara facilitar su uso cuandoMaterialScopese crea a través dematerialScopeWithResources. Además, hay una funciónhasProtoLayoutScopepara verificar su presencia. (I1858f, b/450067019)
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
LayoutModifierque hace que un elemento aparezca gradualmente a medida que la tarjeta se vuelve visible. (I38531, b/390345969) - Se agregó
materialScopeWithResourcespara admitir el concepto deMaterialScopede M3 que también se encarga del registro automático de recursos. Se agregaron nuevos métodos de ayuda para imágenes (backgroundImageavatarImagey el ícono) que eliminan la necesidad de registrar recursos manualmente enonTileResourceRequestcuando se usan. (I525bd, b/428692714) ProtoLayoutasistentes de Kotlin paraImageyImageResourcespara usar conProtoLayoutScopey 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
AndroidLottieResourceByResIdpara 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
PendingIntentcomo acción de clic (I01978, b/433802488). - Agrega una nueva API en
Image.Builder-setImageResourcepara 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
ProtoLayoutScopeen preparación para un mejor manejo de recursos en Tiles. (I132ce, b/428692423) ProtoLayoutMaterial3MaterialScopeahora expone el campoContextcomo 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.setResourceIden favor de la nueva API de registro automático de recursos, disponible en las APIs deImage.Builder(ProtoLayoutScope)yImage.Builder.setImageResourceque eliminan la necesidad de anularonTileResourcesRequest. (I7bfe6, b/432758526) - Se trasladaron las APIs para crear
ProtoLayoutScopede 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
PendingIntentenProtoTiles(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).
ImageResourceahora tiene métodoshashCodeyequals. (I650ee, b/428692423, b/428693523)- Se agregaron el nuevo mensaje .proto
PendingIntentActiony 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-material3solo 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
MaterialScopepara encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalizacióniconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,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
LayoutModifiercon 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 objetoModifiersexistenteLayoutColorsyLayoutStringcomo tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicostextyfontStyle- Mejor compatibilidad con mapas para
StateBuilder, incluidosDynamicDataMapy 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
Brushque se puede usar en modificadores deBackgroundpara elementos comoBox,Spacer, etcétera… - Permite valores de color dinámicos en
ColorStopque 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-expressionpara 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
DashedArcLinecon un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia delArcLineexistente - Compatibilidad con
ArcSpacerpara establecer su longitud en la dimensión de DP en lugar de grados - Se agregó el eje de redondez
FontSettingaplicable 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,ArcLineyDashedArcLineno 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 establezcalayoutConstraintsy 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
primaryLayoutpara 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-material3solo 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
MaterialScopepara encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalizacióniconEdgeButton,textEdgeButtoniconButton,textButton,button,imageButton,avatarButton,compactButtontitleCard,appCard,graphicDataCard,iconDataCard,textDataCardcircularProgressIndicator,segmentedCircularProgressIndicatorprimaryLayout,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
LayoutModifiercon 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 objetoModifiersexistenteLayoutColorsyLayoutStringcomo tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicostextyfontStyle- Mejor compatibilidad con mapas para
StateBuilder, incluidosDynamicDataMapy 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
Brushque se puede usar en modificadores deBackgroundpara elementos comoBox,Spacer, etcétera… - Permite valores de color dinámicos en
ColorStopque 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-expressionpara 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
DashedArcLinecon un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia delArcLineexistente - Compatibilidad con
ArcSpacerpara establecer su longitud en la dimensión de DP en lugar de grados - Se agregó el eje de redondez
FontSettingaplicable 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
MaterialScopepara 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
platformVisibilityStatusaPlatformEventSources.isLayoutVisibley se agregó una nueva API experimentalPlatformEventSources.isLayoutUpdatePending. (Ie1e04)
Correcciones de errores
- Ahora, los márgenes de
primaryLayoutse 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
ProtoLayoutMaterial3. (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
ProtoLayoutMaterial3. (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
enterTransitionyexitTransition(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
LayoutElementAssertionsProviderpara evaluar valores dinámicos. (Ib5fcb) - Agrega filtros de esquinas a la biblioteca de pruebas de protolayout (Ie2361).
ButtonColors,CardColorsyProgressIndicatorColorsahora 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ó
imageButtoncuando se usa con la funciónbackgroundImagequitando la superposición. Además, permite que la funciónbackgroundImageespecifique 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
hasValueOfTypepredeterminado para que arrojeUnsupportedOperationExceptionen 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
FontSettingpara el texto de Material 3. (Ic102d) - Se agregó la clase
DynamicDataMap, que ahora admiteStateBuilderpara 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). DynamicDataValueahora tiene un métodohasValueOfType(Class<?>)además de los métodoshasInt/hasColor/… (I4f7a6)- Agregamos
errorDima ProtoLayout de Material 3ColorSchemepara 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
addKeyToValueMappingaaddToStateMapy 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
FontSettingadmite el eje de redondez para las fuentes que lo admiten. (I33eb5) - Se cambió el nombre de
multilineAlignmenta 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
mainContentenconstructGraphictambié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
ColorStopy 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 (
graphicCardyavatarButton) 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_ENDcuando 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,visibilityyopacity. (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 Material3
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.foldInse llamafoldRightpara reflejar mejor su comportamiento esperado (Idf242). - El activador de
VisibleOnceahora es experimental. (Ib2d26) - Se quitó
withOpacityde 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.ktyLayoutColor.ktpara 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
*Colorsen Material3. (I2d114)
Correcciones de errores
- Agrega la implementación de resguardo de
EdgeButtonpara 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
LayoutColorpara admitir tipos de color estáticos y dinámicos (I4c89b)- Se agregó el componente
ProtoLayout Material3textButton. (Id680d) - Se agregó el componente
iconButtonde 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
CircularProgressIndicatorde segmento único de Material3 de ProtoLayout (I2c8a2). - Se agregaron los modificadores
paddingymetadata(I8720a). - Se agregaron los modificadores
background,clipyclickable(I35478). - Agrega
LinearGradiental 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
graphicDataCardde Material3 de ProtoLayout. (I92be7) - Se agregaron componentes
iconDataCardytextDataCardde Material3 de ProtoLayout. (I4e1e4) - Se agregó el componente
appCardde Material3 de ProtoLayout. (Id4c57) - Abstrae
EdgeButtonColorsaButtonColors. (I83624) - Se agregó el componente
titleCardde Material3 de ProtoLayout. (I2dc72)
Cambios en la API
- La API de ProtoLayout Material3 ahora acepta
LayoutStringpara 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
ArcSpacertome 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ó
LayoutStringpara 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,LayoutElementAssertionyLayoutElementMatchera 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,buttonGroupyprimaryLayout.
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-protoyandroidx.wear.protolayout:protolayout-external-protobufa 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-protoyandroidx.wear.protolayout:protolayout-external-protobufa 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
FontStylese 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
48dppor48dp. - Se mejoraron
PrimaryLayoutyEdgeContentLayoutagregandosetResponsiveContentInsetEnabledpara 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:
FontStylese actualizó para admitir fuentes adicionales de la siguiente manera:- Configurar diferentes parámetros de variación de fuentes, como
FontSetting.weightyFontSetting.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
Cornerpara admitir la especificación de cadaCornerRadiuscon valores horizontales y verticales separados para permitir la creación de elementos con esquinas asimétricas. - Se agregó un nuevo modificador
Transformationque ofrece traslación, rotación y escalamiento deLayoutElement. Estas transformaciones se pueden animar con valores dinámicos. - Se agregó
setArcDirectioncon las opcionesClockwise,CounterClockwiseyNormala todos los elementos de arco (Arc,ArcLineyArcText) 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
Clickablepara que sea de al menos48dppor48dp. - Se mejoraron
PrimaryLayoutyEdgeContentLayoutagregandosetResponsiveContentInsetEnabledpara 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
Textde 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.widthdebe 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
hasTextaMaterial.CompactChippara verificar si se configuró el contenido del texto. (I6e8fc)
Cambios en la API
- Las constantes
FontFamilyse mueven aFontStyleen lugar de a su clase Builder. (I06ced) - Se actualizaron las APIs de
FontSetting.weightyFontSetting.widthpara 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
FontSettingpara incluir lo siguiente: - Se agregó la API de familia de fuentes a
FontStylepara 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
LayoutDefaultsde Material que, inicialmente, tenían el prefijo "Contenido de borde" para que fueran más genéricas, ya que se pueden aplicar tanto aPrimaryLayoutcomo aEdgeContentLayout. (I4dc32)
Correcciones de errores
- Se cambió el nombre de los ejes de fuentes variables de
axisNameaaxisTag. (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
getTouchDelegateInfodebido 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
ArcDirectionPropahora espera un valor en el constructor. (I76ada) - El método
PlatformDataValues.Builder.putAllpermitirá combinar unPlatformDataValueen otro. (I50ba3) - El nombre de
Text#setIsScalablecambió 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ó
CompactChippara 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
DynamicDataNodepara 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
PrimaryLayoutsinsetResponsiveContentInsetEnabledy 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 Arcahora tienen la opción de agregarArcDirection(Clockwise,CounterclockwiseoNormal). Agregar este comportamiento aArc,ArcLineoArcTextcorregirá su comportamiento en los diseños de RTL. (I90699) EdgeContentLayoutse actualizó con un nuevo establecedorsetResponsiveContentInsetEnabledpara 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
ArcLinepara 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 a cualquier elemento
Clickablea 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
PlatformTimeUpdateNotifierImplse marca inmediatamente después de habilitar la actualización. (I77145)- Se corrigió
CircularProgressIndicatorpara 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:
ArcLineahora admite el gradiente agregandoBrushconSweepGradienty teniendo una sombra en el tope para representar mejor las longitudes mayores a 360 grados agregandoShadowen elStrokeCapexistente.DynamicInstantadmite el formato de fecha y hora con zona.DynamicInstantyDynamicDurationse 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_ELLIPSIZEy dejando de usarTEXT_OVERFLOW_ELLIPSIZE_END. Spacerahora 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
ProtoLayoutahora 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
Clickableahora 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 quitaronAndroidTextStyley 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
SweepGradientpara permitir la aceptación de colores oColorStopsen 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,
RoundModese establece de forma predeterminada comoFloorenFloatToInt32Node. El nodo seguirá arrojando una excepción si no se reconoce elRoundModeproporcionado. (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
VersionInfono 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_ENDya 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
AndroidTextStyley los métodos de configuración relacionados de la API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3) - Se reemplazó
Modifier.hiddenporModifier.visible(I56902). FontStyle#setSizesahora 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
TextOverflowpara 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.weightpara compilarExpandedDimensionPropcon peso. (I4f72b) DynamicInstantyDynamicDurationse pueden usar como tipos de datos de estado o de plataforma. (I6819f)
Cambios en la API
- Se actualizó la API para ocultar
DynamicZonedDateTimey 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
ArcLineStrokeCapShadowa 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
StrokeCapShadow. (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
setLayoutConstraintForDynamicAnchorAngleygetLayoutConstraintForDynamicAnchorAngledel 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
ProtoLayouta 30LayoutElementsanidados. (I8a74b)
Correcciones de errores
- Agregamos una verificación para arrojar una excepción si se configuró
DynamicColorpara unSpanText. (I0e5bc) - Se aclaró que la unidad de la fuente de datos
DAILY_CALORIESes 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.addKeyToValueMappingahora aceptan la asignación con seguridad de tipos deDynamicDataKeyaDynamicDataValueen lugar de elementos genéricos no seguros. Esto significa queDynamicDataValueahora se escribe con suDynamicType. Las constantes deHEART_RATE_ACCURACY_Xse movieron a la raíz dePlatformHealthSourcespara que coincidan con la posición de otras constantes de Android. Las constantes int deHEART_RATE_ACCURACY_Xahora se usan directamente enDynamicHeartRateAccuracy.constant()yDynamicHeartRateAccuracy.dynamicDataValueOf()en lugar de la constante de valor. (I82ff5)- La clase
PlatformHealthSources.Constantsse podía crear instancias por error. Ya se solucionó este problema. (Icb849) PlatformTimeUpdateNotifier#setReceiverahora recibeRunnableen lugar de la funciónSupplieryExecutorpara notificar. (I9d938)- Cambiamos el tipo de parámetro en
PlatformTimeUpdateNotifier#setReceiverdeCallableaSupplier. (I664bf) CompactChipyTitleChipahora 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
PlatformDataKeypara la precisión de la frecuencia cardíaca. (I7f9b8)
Cambios en la API
- Se cambió el nombre de
StateBuilders#getIdToValueMappingagetKeyToValueMappingy se modificó el tipo de datos que se muestra aMap<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae) - Se convirtió
StateStoreen una clase final (I408ca). - La interfaz
TimeGatewayse reemplazó porPlatformTimeUpdateNotifieren la bibliotecaprotolayout-expression-pipeline, que proporciona la frecuencia deseada para actualizar los datos de tiempo. (I60869) - Se cambió el nombre de
register/unregisterForDataenPlatformDataProvideraset/clearReceiver(I14b02). - En Material Text, se cambió el nombre de
getExcludeFontPaddingahasExcludeFontPadding. (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_NUMBERcambió porMAX_BUTTONS. (I84788) - El nombre de
DAILY_DISTANCEcambió 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
PlatformDataKeydeben 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ó
AppDataKeypara acceder al estado de la app enviado por inserción,PlatformDataKeypara acceder a los datos de la plataforma y compatibilidad con espacios de nombres enStateStore. (I7985e) - Admite las operaciones
EqualyNotEqualparaDynamicBool. (I6a0c1)
Cambios en la API
- La clase
FontStylesahora es final (Iaa2ea). LayoutElementBuilders#FontStylesquedó obsoleto. Usaandroidx.wear.protolayout.Typographyo crea tu propioFontStyle. (Ic929b)- Se ocultó la interfaz anidada
Action#Builderde la interfazAction. Las clasesLoadActionyLaunchActionya proporcionan implementaciones de Builder. (I1d70c) - Permite usar
DynamicFloatconFloatProp. Ten en cuenta queFloatPropno requiere restricciones de diseño, ya que no se usa como una propiedad que cambia el diseño. (I286ac) - Se quitaron las acciones
LoalActionySetStateActionporque 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
StateEntryValueporDynamicDataValuey se actualizaron las APIs de estado para usarDynamicDataKey(If1c01). - Limitamos la cantidad de entradas permitidas en
StateStorepara 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_COUNTentradas en el mapa; de lo contrario, recibirá unIllegalStateExceptioncuando cree o actualice elStateStore. (Ibadb3) - Se ocultaron las clases
OnLoadTriggeryOnConditionMetTrigger, y se cambió el nombre desetTriggerasetConditionparaOnConditionMetTrigger. (Ibf629) - Por motivos de rendimiento y compatibilidad, los renderizadores de
ProtoLayoutno admitirán el conjunto completo de funciones en los recursos deAnimatedVectorDrawable. Marcaremos esas APIs como experimentales hasta que podamos definir el conjunto admitido. (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.cubicBezierreemplaza aCubicBezierEasing.Builder. Con eso, se quita la claseEasingFunctiony las constantes de aceleración de esa clase ahora son accesibles directamente desde la interfazEasing. Además,setInfiniteRepeatablese reemplazó porINFINITE_REPEATABLE_WITH_RESTARTyINFINITE_REPEATABLE_WITH_REVERSE(Ib41e7). - Implementa
PlatformDataProviderpara proporcionar la frecuencia cardíaca y los pasos diarios. Se quitó la interfazSensorGatewayde la API pública. (I55b84) - Agrega
PlatformDataProvidery actualizaStateStorepara registrarse enPlatformDataProvidercuando el nodo de la canalización de expresiones requiera la clave admitida del proveedor. (Ib616a) SensorGatewayya no esCloseable, ya que no mantiene ningún estado. (I6b4f7)- Permite usar
FloatPropconDynamicFloatpara el progreso enCircularProgressIndicator. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores antiguos recurrirán astaticValuesi se proporciona, o bien a 0 (I0d91b). - Las constantes de
MultiButtonLayoutse 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
StringPropconDynamicStringen 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#getTextdeStringaStringProp. (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
StrokeCapparaArcLine. (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/disablePlatformSourcedeDynamicTypeEvaluator. 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
@IntRangepara 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
AndroidTextStyleaLayoutElementBuilders. (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)
DynamicColorahora 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,ContentDescriptionno se puede vincular. (I3f1d) - El método
DynamicBool.isFalse()ahora se reemplaza porDynamicBool.negate()y se quitaDynamicBool.isTrue(). Además, los valores NaNDynamicFloaty el estrechamiento de unDynamicInt32a unDynamicFloatahora 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
apien lugar deimplementationcuando 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#registerSensorGatewayConsumertoma el tipo de datos como parámetro en lugar del método en Consumer. (Icf314)- El nombre de
ObservableStateStorecambió porStateStore. (Ieb0e2) - Se agregó
DynamicTypeEvaluator.Builderen 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
DynamicColora Border y Background. - Se agregó compatibilidad con valores dinámicos a los tipos en
DimensionBuilder. - El diseño y los componentes de
tiles-materialse trasladarán aprotolayout-material
Cambios en la API
- Se ha agregado a
LoadActionListeneraProtoLayoutViewInstance. (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
forwardRepeatDelayMillisyreverseRepeatDelayMillisaRepeatable. También cambiamos el nombre dedelayMillisenAnimationSpecastartDelayMillis(Ifb266). - Los métodos
DynamicTypeEvaluator.bindahora aceptan un Executor. (I346ab) - Agregamos el método
startEvaluationaBoundDynamicTypepara 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
ObservableStateStoreahora 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
OnLoadyOnConditionalMet. 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
AnimatedVectorDrawableySeekableAnimatedVectorDrawablecomo 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/getSpecaset/getAnimationSpecen 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
DynamicTypeEvaluatorde 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:tilesse trasladarán aandroidx.wear.protolayout:protolayout. Los que se encuentran enandroidx.wear.tiles:tilesdejará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.