wear protolayout
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
11 de diciembre de 2024 | 1.2.1 | - | - | 1.3.0-alpha05 |
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-alpha04" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04") }
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.3
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 nulidad de JSpecify, que son de tipo de uso. Los desarrolladores de Kotlin deben usar los siguientes argumentos del compilador para aplicar el uso correcto:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(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 Material3 para que sea una clase con campos que contengan el valor real de Corner, al igual que en Wear Compose. (Ied8cd)
- Se actualizaron los colores de Material3 para incluir el concepto de
ColorScheme
, al igual que en Wear Compose. (If645e). - Se agregaron varios comparadores de uso general 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 los componentes
text
,edgeButton
,buttonGroup
yprimaryLayout
.
Correcciones de seguridad
- A partir de este cambio, androidx compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza la dependencia de la versión 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
yandroidx.wear.protolayout:protolayout-external-protobuf
a la 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 las familias de fuentes Roboto y Roboto Flex depende del dispositivo. (I193be).
- Se habilitó la familia de fuentes Roboto Flex en el renderizador de tarjetas 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 compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza la dependencia de la versión 1.2.0 de
androidx.wear.protolayout:protolayout-proto
yandroidx.wear.protolayout:protolayout-external-protobuf
a la 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
- Se actualizó
FontStyle
para admitir fuentes adicionales para los ejes variables y una mejor API de selección de fuentes para admitir las próximas fuentes Flex. - Compatibilidad con modificadores adicionales:
- Es un modificador de transformación que ofrece traslación, rotación y escalamiento con o sin animaciones.
- Especifica valores diferentes (horizontal y vertical) para cada radio de esquina.
- Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área táctil de cualquier elemento que use el modificador Clickable a un mínimo de
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 las tarjetas. - Se mejoró el escalamiento o la falta de escalamiento del texto de Material para el escalamiento de fuente no lineal de Android 14.
- Se mejoró la compatibilidad con la dirección de diseño de RTL 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
- Corrigimos el chip de Material estándar para que se pueda usar como ícono solo si no se pasa ninguna de las etiquetas principales o secundarias. (Iceef9)
- Se actualizó la documentación de los diseños de Material para incluir imágenes de la página relevante 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 marca como experimental). Wear ProtoLayout 1.2 incluye las siguientes APIs y funciones nuevas:
FontStyle
se actualizó para admitir fuentes adicionales de la siguiente manera:- Configura diferentes parámetros de variación de fuente, como
FontSetting.weight
yFontSetting.width
. - Establecer el mismo ancho para todos los caracteres numéricos: números tabulares (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 flex especificando los nombres de las familias de fuentes preferidas que se usarán.
- Configura diferentes parámetros de variación de fuente, 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 brindar una mejor compatibilidad en diferentes direcciones de diseño (como LTR y RTL). - Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área táctil de 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 las tarjetas. Se agregó una advertencia de lint para sugerir el uso de estas APIs con una solución rápida. - Se mejoró el escalamiento o no de
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 infiere por no usar 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
- Se agregó el método
hasText
aMaterial.CompactChip
para verificar si se configuró el contenido de texto. (I6e8fc).
Cambios en la API
- Los const de
FontFamily
se mueven para estar enFontStyle
en lugar de su clase de Builder. (I06ced). - Se actualizó la API 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 en 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 la 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
LayoutDefaults
de Material, que inicialmente tenían el prefijo "Edge content" para ser más genéricos, ya que se pueden aplicar aPrimaryLayout
yEdgeContentLayout
. (I4dc32)
Correcciones de errores
- Se cambió el nombre de los ejes de fuente variable 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
- Se agregó compatibilidad para inhabilitar los comentarios de onda 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). - Material Text puede establecer si se usa un tamaño escalable (aumenta cuando se cambia el tamaño de la fuente del usuario) o no. (Ibc849).
- Se agregó 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 solucionó un problema de posibles datos de plataforma duplicados durante la inicialización. (Iba0fd).
- Se agregó un nuevo método get a
DynamicDataNode
para recuperar el costo del nodo. El costo se usa cuando se adquiere la cuota de nodos dinámicos. Actualmente, los nodos con valores fijos tendrán un costo de 0 y todos los demás tendrán un costo de 1. (Ia33e1). - Se quitó 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 expresión dinámica. (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
). Si agregas este comportamiento aArc
,ArcLine
oArcText
, se corregirá su comportamiento en los diseños de RTL. (I90699). - Se actualizó
EdgeContentLayout
con un nuevo setsetResponsiveContentInsetEnabled
para lograr una mejor alineación con los lineamientos de UX y coherencia en las tarjetas, ya que tiene la etiqueta principal en el lugar fijo en la parte superior y un inserto responsivo para las etiquetas. (I60175) - Agregamos
PrimaryLayout.setResponsiveContentInsetEnabled
, que agrega una inserción responsiva a la etiqueta principal, la etiqueta secundaria y el chip inferior en este diseño para evitar que el contenido salga del borde de la pantalla. (I0c457). - Se agregó un método para quitar los márgenes externos de
CircularProgressIndicator
para que se pueda usar como un componente más pequeño. (I55c06).
Cambios en la API
- El renderizador de tarjetas ahora excluye el padding de la fuente en todos los elementos de texto de forma predeterminada, sin una opción para incluirlo. (I3e300).
Correcciones de errores
- Se corrigió el problema de alineación del texto cuando se usaban elipses, espaciado entre letras y alineación central en el texto. (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
- Compatibilidad con gradientes y 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 del texto y elipses para controlar el texto truncado
- El espaciador admite dimensiones expandidas con peso opcional.
- Se agregó una anotación de requisitos de versión de esquema a todas las APIs de
ProtoLayout
. - Se amplió 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 de texto 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
marca inmediatamente después de habilitar la actualización. (I77145)- Se corrigió
CircularProgressIndicator
para los diseños de derecha a izquierda. A partir de ahora, se hará en el sentido de las manecillas 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 marca como experimental). Wear ProtoLayout 1.1 incluye las siguientes APIs y funciones nuevas:
ArcLine
ahora admite gradientes agregandoBrush
conSweepGradient
y teniendo una sombra en la tapa para representar mejor la longitud superior a 360 grados agregandoShadow
en elStrokeCap
existente.DynamicInstant
admite el formato de fecha y hora por zona.DynamicInstant
yDynamicDuration
se pueden usar como tipos de datos de estado o de plataforma.- Función de tamaño automático para el tamaño de texto que permite establecer varios tamaños en
FontStyle.setSizes
, en los que el tamaño de texto se escalará automáticamente en función del espacio que tenga dentro del elemento superior. Además, mejoramos las opciones de puntos suspensivos para el texto que se desborda agregandoTEXT_OVERFLOW_ELLIPSIZE
y dando de bajaTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
ahora admite dimensiones expandidas con peso opcional. Para compilarExpandedDimensionProp
, agregamos un método de ayudaDimensionBuilders.weight
.- Compatibilidad para ocultar y mostrar elementos de diseño de forma dinámica con
Modifier.visible
. Esto incluye tener valores dinámicos enBoolProp
. - Todas las APIs de
ProtoLayout
ahora tienen una anotación de requisitos de versión del esquema, y se puede verificar la versión antes de llamar a una API más reciente. - Cada elemento que tiene
Clickable
ahora tiene su área objetivo extendida a, al menos, 48 × 48 en el renderizador para admitir mejor los requisitos de accesibilidad. - Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuente de forma predeterminada en todos los elementos
Text
. Además, se quitaronAndroidTextStyle
y los seters relacionados de la API pública. Se realizaron las siguientes correcciones de errores: - Se agregó un set para posicionar el contenido perimetral en
EdgeContentLayout
para que se pueda posicionar antes que otro contenido. - Genera 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 realizaron actualizaciones en la API de
SweepGradient
para permitir aceptar 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).
RoundMode
se establece de forma predeterminada enFloor
enFloatToInt32Node
cuando no se especifica. 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
dejó de estar disponible. Usa la nueva APITEXT_OVERFLOW_ELLIPSIZE
con un comportamiento muy similar. (I822d8). - Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuente de forma predeterminada en todos los elementos de texto. Además, se quitaron
AndroidTextStyle
y los establecedores relacionados de la API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3). Modifier.hidden
se reemplaza porModifier.visible
(I56902).FontStyle#setSizes
ahora acepta int en lugar de argumentosSpProp
. (I02b37).
Correcciones de errores
- Genera una excepción cuando se encuentra un valor de enumeración no reconocido o no definido. (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 elipse el texto en un contenedor superior 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 mover todas sus operaciones aDyanamicInstant
(I34b94). - El espacio ahora admite la dimensión expandida para el ancho o la altura. (Ie7c94).
- Se agregó compatibilidad con la extensión del área de destino de clic en el renderizador (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
Shadow
StrokeCap
ArcLine
a la API. (I830ec). - Se extendió la API para poder especificar el ancho o la altura del espaciador para expandirlo. (I757ca).
- Agregamos una API experimental para escalar 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 en el que se puede hacer clic (I178e3).
- Se agregó compatibilidad con el renderizador para
StrokeCap
Shadow
. (I48b17). - Se agregó compatibilidad del 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 zona. (Ibfae0).
- Se agregaron protos y wrappers de Java necesarios para el formato de fecha y hora por zona. (I97126).
- Se agregaron métodos get para volver a leer el valor almacenado en un
DynamicDataValue
. (Ie6cea). - Se agregó un set para posicionar el contenido perimetral en
EdgeContentLayout
para 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 hora no se actualizaba de inmediato. (I8e1a8).
- Se corrigió un error para centrar el elemento raíz durante las actualizaciones de diferencias. (Ie48f7).
- Ya no se ignorarán los valores de restricción de diseño no establecidos (o vacíos). (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 presenta APIs para crear diseños y expresiones que se pueden usar en diferentes plataformas de Wear OS. Por ejemplo, la biblioteca de tarjetas usa estas APIs para admitir animaciones y vinculaciones de datos de plataforma (para actualizaciones de datos de tarjetas más rápidas).
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
- Se agregó una verificación para arrojar si se configuró
DynamicColor
para unSpanText
. (I0e5bc). - Se aclara 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 segura de tipos deDynamicDataKey
aDynamicDataValue
en lugar de genéricos no seguros. Eso significa queDynamicDataValue
ahora se escribe con suDynamicType
. Las constantesHEART_RATE_ACCURACY_X
se movieron a la raíz dePlatformHealthSources
para que coincidan con el posicionamiento de otras constantes de Android. Las constantes intHEART_RATE_ACCURACY_X
ahora se usan directamente enDynamicHeartRateAccuracy.constant()
yDynamicHeartRateAccuracy.dynamicDataValueOf()
en lugar de la constante de valor. (I82ff5).- La clase
PlatformHealthSources.Constants
se pudo crear por error. Ya se solucionó. (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 agregar un ícono. (I5a01e).
Correcciones de errores
- Se actualizaron los mensajes de Prop con campos dinámicos para usar oneof en su lugar (I81739).
- Se volvió a usar la implementación de set para las sobrecargas que tienen set (Ied70c).
- Se registran correctamente las huellas digitales en los set 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
- Se agregó 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 el tipo de datos que se muestra aMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae). - Se hizo que
StateStore
sea 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ó un set para alinear perfectamente la etiqueta a todos los componentes del chip. Ahora, todos los chips tienen aplicado el objetivo mínimo de elementos en los que se puede hacer clic. (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 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 de
PlatformDataKey
deben seguir los nombres de estilo 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 enviado de la app. Se agregóPlatformDataKey
para acceder a los datos de la plataforma. Se agregó compatibilidad con espacios de nombres enStateStore
. (I7985e) - Se admiten las operaciones
Equal
yNotEqual
paraDynamicBool
. (I6a0c1).
Cambios en la API
- La clase
FontStyles
ahora es definitiva (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 elemento de cambio de diseño. (I286ac) - Se quitaron las acciones
LoalAction
ySetStateAction
, ya que aún no eran compatibles. (I5d6a6) - Se agregó compatibilidad con el formato ARGB_8888 para los recursos de imagen intercalados. (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 de 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 recursosAnimatedVectorDrawable
. 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 las plantas diarias. 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 ahora se puede acceder directamente a las constantes de suavización de esa clase desde la interfazEasing
. Además,setInfiniteRepeatable
se reemplaza 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 registrarte enPlatformDataProvider
cuando el nodo de la canalización de expresión requiera la clave compatible del proveedor. (Ib616a). SensorGateway
ya no esCloseable
, ya que ya no mantiene ningún estado. (I6b4f7).- Permite el uso de
FloatProp
conDynamicFloat
para el progreso enCircularProgressIndicator
. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores anteriores recurrirán astaticValue
si se proporciona, de lo contrario, a 0 (I0d91b). - Las constantes
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 con el uso de
StringProp
conDynamicString
en Material Text. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores anteriores usarán el 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
- Se agregó un elemento de diseño de extensión experimental. Ten en cuenta que no se puede usar de forma predeterminada y requiere una extensión del 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). - Se agregó compatibilidad para configurar el padding de fuente excluido en el texto de Material
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 admite 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 la reducción 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 de compilador. (Ieb213).
Correcciones de errores
- Se quitó el valor estático de resguardo de los campos animables. (Ifcb01).
- Se quitó
DynamicTypeValueReceiver#onPreUpdate
. (I2dc35). - La longitud de las cadenas en las expresiones dinámicas ahora tiene un límite. (I4c93).
- Las dependencias de Gradle ahora 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). - Marca los elementos de diseño vinculables (Ia110b)
Cambios en la API
sensorGateway#registerSensorGatewayConsumer
toma el tipo de datos como parámetro en lugar de 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 se establece de forma predeterminada en una tienda vacía. (I6f832). - Se refactorizó el orden de los parámetros en
DynamicTypeEvaluator
. (Ic1ba4).
Correcciones de errores
- Se propagan correctamente los indicadores de las fuentes de sensores de la plataforma a los nodos downstream (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).
- Se agregó compatibilidad con la demora de retroceso y avance 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 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
- Se agregó 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 de diseño. (bd03e5d).
Cambios en la API
- Se agregaron
forwardRepeatDelayMillis
yreverseRepeatDelayMillis
aRepeatable
. También cambiamos el nombre dedelayMillis
enAnimationSpec
astartDelayMillis
(Ifb266). - Los métodos
DynamicTypeEvaluator.bind
ahora aceptan un ejecutor. (I346ab). - Se agregó 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 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 la escala de 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 fuente). - Se agregó compatibilidad con la animación de valores
DynamicInt32
(I05485). - Se agregaron los activadores
OnLoad
yOnConditionalMet
. Se pueden usar para iniciar animaciones que admiten un activador. - Agregamos el peso del diseño para las dimensiones expandidas y el 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.
- Se agregó compatibilidad con
AnimatedVectorDrawable
ySeekableAnimatedVectorDrawable
como recursos de diseño.
Cambios en la API
- Los datos de sensores requieren el nivel de API 29 o versiones posteriores. (I8099e)
- Se agregaron 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.