Animación de Compose
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(Consulta la documentación de referencia de la API para todos los paquetes de Compose)
Actualización más reciente | Versión estable | Versión potencial | Versión beta | Versión alfa |
---|---|---|---|---|
13 de noviembre de 2024 | 1.7.5 | - | - | 1.8.0-alpha06 |
Estructura
Compose es una combinación de 7 ID de grupos de Maven en androidx
. Cada grupo contiene un subconjunto de funcionalidades objetivo, que a su vez posee su propio conjunto de notas de la versión.
En esta tabla, se explican los grupos y vínculos correspondientes a cada conjunto de notas de la versión.
Grupo | Descripción |
---|---|
compose.animation | Compila animaciones en las aplicaciones de Jetpack Compose para enriquecer la experiencia del usuario. |
compose.compiler | Transforma las funciones que admite @Composable y habilita las optimizaciones con un complemento de compilador de Kotlin. |
compose.foundation | Escribe aplicaciones de Jetpack Compose con componentes fundamentales listos para usar y extiende la base para compilar tus propias piezas de sistema de diseño. |
compose.material | Compila las IUs de Jetpack Compose con componentes de Material Design listos para usar. Este es el punto de entrada de nivel superior de Compose, diseñado para proporcionar componentes que coincidan con los descritos en www.material.io. |
compose.material3 | Compila las IUs de Jetpack Compose con componentes de Material Design 3, la siguiente evolución de Material Design. Material 3 incluye temas y componentes actualizados, y funciones de personalización de Material You, como el color dinámico. Además, se diseñó para ser coherente con el nuevo estilo visual y la IU del sistema de Android 12. |
compose.runtime | Se trata de los componentes fundamentales del modelo de programación de Compose y de su administración de estados, así como del entorno de ejecución principal al cual se orienta el complemento de compilación de Compose. |
compose.ui | Son los componentes fundamentales de la IU de Compose necesarios para interactuar con el dispositivo, incluidos el diseño, el dibujo y la entrada. |
Cómo declarar dependencias
Para agregar una dependencia en Compose, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta 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 { implementation "androidx.compose.animation:animation:1.7.5" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.7.5") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
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.8
Versión 1.8.0-alpha06
13 de noviembre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha06
. La versión 1.8.0-alpha06 contiene estas confirmaciones.
Cambios en la API
- Se actualizó el nombre del parámetro
sharedElement
destate
asharedContentState
para brindar coherencia en las APIs de elementos compartidos. (I5694c, b/375351468). - El paquete de APIs de
AnimatedImageVector
ahora es estable. (I7174b, b/261436267).
Versión 1.8.0-alpha05
30 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha05
. La versión 1.8.0-alpha05 contiene estas confirmaciones.
Nuevas funciones
- La función de visualización anticipada ahora es compatible con
LazyGrid
. Esto incluye diferenciar el pase de visualización anticipada del pase de aproximación en el desplazamiento, la composición o eliminación de elementos y la animación de elementos, y usa el pase de visualización anticipada para la fuente de información del desplazamiento y el objetivo de animación de elementos.
Correcciones de errores
- Actualiza los estados internos para la transformación de tamaño de
AnimatedContent
cuando se vuelva a crear la transición. Esto garantiza que la información del tamaño objetivo siempre esté actualizada. (b/372512085).
Versión 1.8.0-alpha04
16 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha04
. La versión 1.8.0-alpha04 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error que causaba que algunas curvas de suavización fallaran en ciertas fracciones de tiempo.
- Se corrigió un error que causaba una alineación incorrecta de
Modifier.animateContentSize
en RTL. (Idae6b, b/372055503).
Versión 1.8.0-alpha03
2 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha03
. La versión 1.8.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se actualizó la versión de Kotlin a la 1.9 (I1a14c).
Correcciones de errores
- Se corrigió un problema en la animación de tamaño
AnimatedContent
. Para ello, se realiza un seguimiento y se inicia la animación desde el tamaño actual para garantizar la continuidad.
Versión 1.8.0-alpha02
18 de septiembre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha02
. La versión 1.8.0-alpha02 contiene estas confirmaciones.
Versión 1.8.0-alpha01
4 de septiembre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.8.0-alpha01
. La versión 1.8.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Nueva API de
Modifier.animateBounds
para animar cambios de tamaño y posición dentro de un alcance de visualización anticipada. 94b9394
Cambios en la API
- Se quitaron las marcas experimentales en los fotogramas clave con arcos y splines (89e1199).
Correcciones de errores
- Se omite la lógica de
placeHolderSize
cuando no se encuentra ninguna coincidencia (77c0160). - Se limita el tiempo de reproducción en
AndroidFlingSpline
para evitar fallas debido a un tiempo de reproducción que no aumenta de forma monótona(9d47587). - Se corrigió
SharedTransitionScope
que no dibujaba elementos en ciertas condiciones (b41077b6).
Contribución externa
- Steven Schoen evitó que se establezca la transición
playTime
que se puede buscar cuando no se ejecuta ninguna transición. (c2e6e7e6)
Versión 1.7
Versión 1.7.5
30 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.5
. La versión 1.7.5 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió un error que causaba una alineación incorrecta de
Modifier.animateContentSize
en RTL. (Idae6b, b/372055503).
Versión 1.7.4
16 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.4
. La versión 1.7.4 contiene estas confirmaciones.
Versión 1.7.3
2 de octubre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.3
. La versión 1.7.3 contiene estas confirmaciones.
Versión 1.7.2
18 de septiembre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.2
. La versión 1.7.2 contiene estas confirmaciones.
Contribución externa
- Evita configurar la transición
playTime
que se puede buscar cuando no se está ejecutando ninguna transición. Gracias, Steven Schoen. (c2e6e7e6)
Versión 1.7.1
10 de septiembre de 2024
- No hay cambios en los artefactos de Android. Se quitaron los artefactos
-desktop
y se agregaron los artefactos-jvmStubs
y-linuxx64Stubs
. Ninguno de estos objetivos está destinado a usarse, son marcadores de posición para ayudar a los esfuerzos de Jetbrains Compose.
Versión 1.7.0
4 de septiembre de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0
.
Cambios importantes desde la versión 1.6.0
En esta entrada de blog, se describen los cambios importantes de la versión 1.7.0.
Nuevas APIs de Shared Element Transitions
- Las nuevas APIs de transición de elementos compartidos esperan tu uso y comentarios. Estas nuevas APIs experimentales permiten etiquetar diseños como compartidos en todo el árbol de diseño con los modificadores proporcionados, lo que produce límites que cambian de forma fluida cuando se sale de un conjunto de contenido compartido y se ingresa al otro. (Icb0b9).
- Se agregaron
scaleInSharedContentToBounds
yscaleOutSharedContentToBounds
nuevos para escalar el contenido ensharedBounds
(I731c1). SharedTransitionScope
experimental ahora es una interfaz en lugar de una clase. (Iaf856).- Nuevo
resizeModes
(ScaleToBounds
yRemeasureToBounds
) para quesharedBounds
elija entre el escalamiento y la nueva medición. Las APIs descaleIn/OutSharedContentToBounds
anteriores ahora están obsoletas. (I0d41a)
Mejoras en las APIs existentes:
- Nuevo
Modifier.animateContentSize
que toma un parámetro adicional para la alineación de contenido personalizado. (I5623a, b/269803907). - Nuevo
DeferredTargetAnimation
experimental para animar el tamaño, la posición o cualquier otro objetivo que sea desconocido durante la creación de instancias. (I60745) SeekableTransitionState
reemplazasnapTo()
porseekTo()
y agrega unsnapTo()
que cambia inmediatamente el estado a un estado de destino sin ningún tipo de animación.- Ahora puedes pasar un valor
periodicBias
(flotante) akeyframesWithSpline
, lo que hará que la velocidad inicial y final de la spline sean iguales. Es útil para animaciones repetibles con splines. El sesgo indica cuánto se modifica cada velocidad (inicial y final) para lograr la periodicidad. (Ic1e6c, b/292114811)
Las siguientes APIs se volvieron estables o se quitaron:
AnimatedVisibilityScope.transition
ahora es una API estable.Modifier.animateEnterExit(..)
también se volvió estable. (I6c1d1).ApproachLayoutModifierNode
yModifier.approachLayout
ahora son estables, con nuevosisMeasurementApproachInProgress()
yisPlacementApproachInProgress()
para reemplazar losisMeasurementApproachComplete()
yisPlacementApproachComplete()
anteriores, respectivamente.- Se quitó el modificador
intermediateLayout
obsoleto. (I3e91c). - Las APIs de
LookaheadScope
se volvieron estables. (I21507)
Versión 1.7.0-rc01
21 de agosto de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-rc01
. La versión 1.7.0-rc01 contiene estas confirmaciones.
Versión 1.7.0-beta07
7 de agosto de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta07
. La versión 1.7.0-beta07 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió que
SharedTransitionScope
no dibujara elementos superpuestos durante la transición en ciertas condiciones, lo que, por lo general, incluiría el uso con Navigation. (Id65ab, b/347520198).
Versión 1.7.0-beta06
24 de julio de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta06
. La versión 1.7.0-beta06 contiene estas confirmaciones.
Correcciones de errores
- Se corrigieron los estados de transición de filtración de
SeekableTransition
limpiando correctamente las observaciones deSnapshotStateObserver
cuando se desecha la transición. (b9c7182). - Se corrigieron casos extremos en los que las transiciones secundarias no se marcaban correctamente como completas cuando se completaba la principal. (dc42216).
Versión 1.7.0-beta05
10 de julio de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta05
. La versión 1.7.0-beta05 contiene estas confirmaciones.
Correcciones de errores
- La propiedad Transition
totalDurationNanos
ahora se puede leer correctamente dentro de unsnapshotFlow
.
Versión 1.7.0-beta04
26 de junio de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta04
. La versión 1.7.0-beta04 contiene estas confirmaciones.
Versión 1.7.0-beta03
12 de junio de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta03
. La versión 1.7.0-beta03 contiene estas confirmaciones.
Versión 1.7.0-beta02
29 de mayo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta02
. La versión 1.7.0-beta02 contiene estas confirmaciones.
Versión 1.7.0-beta01
14 de mayo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-beta01
. La versión 1.7.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Nuevo
resizeModes
(ScaleToBounds
yRemeasureToBounds
) para quesharedBounds
elija entre el escalamiento y la nueva medición. Las APIs descaleIn/OutSharedContentToBounds
anteriores ahora están obsoletas. (I0d41a)
Contribución externa
- Steven Schoen cambió
SharedTransitionScope
experimental a una interfaz en lugar de una clase. (Iaf856, b/338415048, b/338414702)
Versión 1.7.0-alpha08
1 de mayo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha08
. La versión 1.7.0-alpha08 contiene estas confirmaciones.
Cambios en la API
- Las APIs de
LookaheadScope
se volvieron estables. (I21507)
Contribución externa
- Steven Schoen aclaró el tiempo de animación de inicio después de que
SeekableTransitionState
anima o ajusta (1ca89529).
Versión 1.7.0-alpha07
17 de abril de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha07
. La versión 1.7.0-alpha07 contiene estas confirmaciones.
Nuevas funciones
- Las nuevas APIs de transición de elementos compartidos esperan tu uso y comentarios. Estas nuevas APIs experimentales permiten etiquetar diseños como compartidos en todo el árbol de diseño con los modificadores proporcionados, lo que produce límites que cambian de forma fluida cuando se sale de un conjunto de contenido compartido y se ingresa al otro. (Icb0b9).
- Se agregaron
scaleInSharedContentToBounds
yscaleOutSharedContentToBounds
nuevos para escalar el contenido ensharedBounds
(I731c1).
Cambios en la API
AnimatedVisibilityScope.transition
ahora es una API estable.Modifier.animateEnterExit(..)
también se volvió estable. (I6c1d1).ApproachLayoutModifierNode
yModifier.approachLayout
ahora son estables, con nuevosisMeasurementApproachInProgress()
yisPlacementApproachInProgress()
para reemplazar losisMeasurementApproachComplete()
yisPlacementApproachComplete()
anteriores, respectivamente.- Se quitó el modificador
intermediateLayout
obsoleto. (I3e91c). - Ahora puedes pasar un valor
periodicBias
(flotante) akeyframesWithSpline
, lo que hará que la velocidad inicial y final de la spline sean iguales. Es útil para animaciones repetibles con splines. El sesgo indica cuánto se modifica cada velocidad (inicial y final) para lograr la periodicidad. (Ic1e6c, b/292114811)
Correcciones de errores
- Se corrigieron las curvas de suavización de sobrepaso y subpaso que antes se limitaban a 0..1 (I38747).
Versión 1.7.0-alpha06
3 de abril de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha06
. La versión 1.7.0-alpha06 contiene estas confirmaciones.
Nuevas funciones
- Se agregó compatibilidad con la animación de aparición y desaparición de elementos en
LazyColumn
yLazyRow
. Anteriormente, era posible agregar el modificadorModifier.animateItemPlacement()
para admitir animaciones de posición (reordenamiento). Dejamos obsoleto este modificador y presentamos un nuevo modificador no experimental llamadoModifier.animateItem()
, que te permite admitir los tres tipos de animación: aparición (desvanecimiento), desaparición (desvanecimiento) y reordenamiento. (I2d7f7, b/330152398, b/150812265).
Correcciones de errores
- Se mejoró el rendimiento de la API de
updateTransition
.
Versión 1.7.0-alpha05
20 de marzo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha05
. La versión 1.7.0-alpha05 contiene estas confirmaciones.
Cambios en la API
SeekableTransitionState
reemplazasnapTo()
porseekTo()
y agrega unsnapTo()
que cambia inmediatamente el estado a un estado de destino sin ningún tipo de animación.
Versión 1.7.0-alpha04
6 de marzo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha04
. La versión 1.7.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Nueva API
Path.reverse()
para invertir la dirección de una ruta (I36348)
Versión 1.7.0-alpha03
21 de febrero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha03
. La versión 1.7.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Nuevo
Modifier.animateContentSize
que toma un parámetro adicional para la alineación de contenido personalizado. (I5623a, b/269803907). - Nuevo
DeferredTargetAnimation
experimental para animar el tamaño, la posición o cualquier otro objetivo que sea desconocido durante la creación de instancias. (I60745)
Versión 1.7.0-alpha02
7 de febrero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha02
. La versión 1.7.0-alpha02 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la compatibilidad con
KeyframesSpec
. (I2bdf3, b/322214617). - Se corrigió un error que generaba que
Modifier.animateContentSize
no se restableciera correctamente cuando se usaba enLazyList
. (I070512, b/322525716) - Se corrigió
IllegalStateException
enKeyframesSpec
cuando se usaban marcas de tiempo fuera de rango. (I341b8, b/322839811).
Versión 1.7.0-alpha01
24 de enero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.7.0-alpha01
. La versión 1.7.0-alpha01 contiene estas confirmaciones.
Versión 1.6
Versión 1.6.8
12 de junio de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.8
. La versión 1.6.8 contiene estas confirmaciones.
Versión 1.6.7
1 de mayo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.7
. La versión 1.6.7 contiene estas confirmaciones.
Versión 1.6.6
17 de abril de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.6
. No hay cambios desde la versión anterior
Versión 1.6.5
3 de abril de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.5
. La versión 1.6.5 contiene estas confirmaciones.
Versión 1.6.4
20 de marzo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.4
. La versión 1.6.4 contiene estas confirmaciones.
Versión 1.6.3
6 de marzo de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.3
. La versión 1.6.3 contiene estas confirmaciones.
Versión 1.6.2
21 de febrero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.2
. La versión 1.6.2 contiene estas confirmaciones.
Versión 1.6.1
7 de febrero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.1
. La versión 1.6.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió la compatibilidad con
KeyframesSpec
. (I2bdf3, b/322214617).
Versión 1.6.0
24 de enero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.0
. La versión 1.6.0 contiene estas confirmaciones.
Versión 1.6.0-rc01
10 de enero de 2024
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-rc01
. La versión 1.6.0-rc01 contiene estas confirmaciones.
Versión 1.6.0-beta03
13 de diciembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-beta03
. La versión 1.6.0-beta03 contiene estas confirmaciones.
Cambios en la API
- Se quitaron temporalmente
scaleInToFitContainer
yscaleOutToFitContainer
deAnimatedContentTransitionScope
, ya que requieren un análisis anticipado. Estarán disponibles cuando la función de visualización anticipada esté activada de forma predeterminada o se habilite en versiones futuras.
Versión 1.6.0-beta02
29 de noviembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-beta02
. La versión 1.6.0-beta02 contiene estas confirmaciones.
Versión 1.6.0-beta01
15 de noviembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-beta01
. La versión 1.6.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se cambió el nombre de
ExitTransition.Hold
porExitTransition.KeepUntilTransitionsFinished
para que sea más explícito. (I1c490). - Ahora puedes usar
keyframesWithSpline
para interpolar cualquier valor de N dimensiones con splines monotónicas. Es particularmente útil para interpolar valores posicionales, comoOffset
,IntOffset
yDpOffset
. Se agregó como API experimental.
Correcciones de errores
- Se agregó compatibilidad del renderizador para el gradiente de barrido en
ArcLine
. (I4d5bb). - Implementa equals y hashcode para
PageSize.Fixed
. (Ie3ede, b/300134276). - Se corrigió el problema de compatibilidad binaria con el cambio de desplazamiento de la ventana. (Iee695)
- Se quitó la capa principal de material para el chip o botón de Material3, ya que las microcomparativas muestran un mejor rendimiento sin ella. (I55555).
Versión 1.6.0-alpha08
18 de octubre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha08
. La versión 1.6.0-alpha08 contiene estas confirmaciones.
Cambios en la API
KeyframesSpecConfig#with
dejó de estar disponible a favor deKeyframesSpecConfig#using
, que conserva el patrón de generador. (I1d769)
Versión 1.6.0-alpha07
4 de octubre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha07
. La versión 1.6.0-alpha07 contiene estas confirmaciones.
Cambios en la API
- Las Tabrows fijas y desplazables ahora tienen variantes principales y secundarias. Estos se asignan correctamente al comportamiento del color y del indicador, como se define en Material3.
PrimaryScrollableTabRow
ySecondaryScrollableTabRow
ahora exponen el estado de desplazamiento. (Iec8f5, b/260572337).
Versión 1.6.0-alpha06
20 de septiembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha06
. La versión 1.6.0-alpha06 contiene estas confirmaciones.
Versión 1.6.0-alpha05
6 de septiembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha05
. La versión 1.6.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Se agregó
PathEasing
para permitir que se proporcione una ruta arbitraria a una curva de suavización. (Idb4b9).
Versión 1.6.0-alpha04
23 de agosto de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha04
. La versión 1.6.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se agregó
SeekableTransitionState
para permitir que los desarrolladores controlen el progreso de una transición. (I8e69d).
Versión 1.6.0-alpha03
9 de agosto de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha03
. La versión 1.6.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Nuevo tipo de transición de entrada/salida que escala el contenido según el tamaño del contenedor de animación durante la animación de entrada y salida. La interfaz y la diversión de
LookaheadScope
componibles ahora son estables. (Ifb2ce).
Versión 1.6.0-alpha02
26 de julio de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha02
. La versión 1.6.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Nuevo
ExitTransition.Hold
para mostrar contenido saliente enAnimatedContent
hasta que finalicen las transiciones de entrada y salida. (I5984f). - Anotaciones adicionales para especificar las entradas permitidas en los elementos componibles (I51109)
Versión 1.6.0-alpha01
21 de junio de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.6.0-alpha01
. La versión 1.6.0-alpha01 contiene estas confirmaciones.
Nuevas funciones
- Habilita
Modifier.animateContentSize
yAnimatedVisibility
para que se integren por completo en el sistema de visualización anticipada informando el tamaño de destino en el pase de visualización anticipada.
Cambios en la API
- Nueva propiedad en
IntrinsincMeasureScope
y sus implementaciones (p.ej.,MeasureScope
) para indicar si el pase de medición actual es un pase de previsión. (I7a812).
Correcciones de errores
- Se quitaron las asignaciones de las animaciones de resorte. (Ie9431).
- Se cambió el nombre del parámetro de valor para Enum.valueOf (Ia9b89).
- Se agregaron más excepciones arrojadas de enum valueOf (I818fe).
Versión 1.5
Versión 1.5.4
18 de octubre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.4
. La versión 1.5.4 contiene estas confirmaciones.
Versión 1.5.3
4 de octubre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.3
. Esta versión no tiene cambios
Versión 1.5.2
27 de septiembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.2
. La versión 1.5.2 contiene estas confirmaciones.
Versión 1.5.1
6 de septiembre de 2023
Lanzamiento de androidx.compose.foundation:foundation-*:1.5.1
. La versión 1.5.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigieron los campos de texto que mostraban el teclado y eran editables cuando
readOnly
era verdadero. También se corrigió el problema por el que no se mostraba el teclado cuando se cambiabareadOnly
de verdadero a falso mientras se enfocaba. (I34a19, b/246909589)
Versión 1.5.1
6 de septiembre de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.1
. La versión 1.5.1 contiene estas confirmaciones.
Versión 1.5.0
9 de agosto de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0
. La versión 1.5.0 contiene estas confirmaciones.
Versión 1.5.0-rc01
26 de julio de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-rc01
. La versión 1.5.0-rc01 contiene estas confirmaciones.
Correcciones de errores
Se solucionó un problema por el que llamar a
.value
en un tipo de estado primitivo (comoMutableIntState
) informaba una advertencia de lint con una corrección no válida. La inspección ahora recomendará migrar a la propiedad correcta. (Iba953, b/287279257)Hay disponible una inspección opcional para recomendar la migración de llamadas
mutableStateOf()
a sus tipos especializados correspondientes para primitivas. Su ID de lint esAutoboxingStateCreation
. Anteriormente, esta inspección estaba habilitada de forma predeterminada para todos los proyectos. Para ver esta advertencia en el editor de Android Studio y en los resultados de lint de tu proyecto, cambia su gravedad de informativa a advertencia (o superior) declarandowarning "AutoboxingStateCreation"
dentro de la configuraciónbuild.gradle
obuild.gradle.kts
de tu módulo, como se muestra (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Versión 1.5.0-beta03
28 de junio de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-beta03
. La versión 1.5.0-beta03 contiene estas confirmaciones.
Versión 1.5.0-beta02
7 de junio de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-beta02
. La versión 1.5.0-beta02 contiene estas confirmaciones.
Versión 1.5.0-beta01
24 de mayo de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-beta01
. La versión 1.5.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Se quitaron las asignaciones en la recomposición, las animaciones de color y
AndroidComposeView
(Ib2bfa).
Correcciones de errores
- Se quitaron las asignaciones de las animaciones de resorte (Ie9431).
Versión 1.5.0-alpha04
10 de mayo de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-alpha04
. La versión 1.5.0-alpha04 contiene estas confirmaciones.
Cambios en la API
ContentKey
ahora es compatible conAnimatedContent
para permitir un mayor control sobre cuándo debe ocurrir la transición. (Ic069b).
Versión 1.5.0-alpha03
19 de abril de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-alpha03
. La versión 1.5.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Nuevo comportamiento predeterminado para
SubcomposeLayout
enLookaheadScope
. Permite que losSubcomposeLayouts
que no tienen espacios condicionales (p. ej.,TabRow
,Scaffold
,BoxWithConstraints
, etc.) funcionen bien con animaciones de visualización anticipada.
Cambios en la API
- El nuevo
intermediateMeasurePolicy
predeterminado que reutiliza la política de medición del pase de previsión permite que los subtipos deSubcomposeLayout
sin ranuras condicionales, comoScaffold
,TabRow
yBoxWithConstraints
, funcionen con la previsión de forma predeterminada. (Id84c8). - Se cambió el nombre de infix fun with a
togetherWith
para combinar transiciones de entrada y salida. NuevoAnimatedContentScope
como receptor de la lambda de contenido. (Ic39ae).
Versión 1.5.0-alpha02
5 de abril de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-alpha02
. La versión 1.5.0-alpha02 contiene estas confirmaciones.
Nuevas funciones
- Nueva API experimental para admitir la vista previa en
SubcomposeLayout
. Esto permitirá queSubcomposeLayout
funcione correctamente en unLookaheadScope
. Pronto se agregará más compatibilidad lista para usar con subtipos específicos deSubcomposeLayout
.
Cambios en la API
- Nueva API de
SubcomposeLayout
que toma una política de medición intermedia adicional para controlar la lógica de medición o diseño durante las animaciones basadas en la previsión. (I017d3)
Versión 1.5.0-alpha01
22 de marzo de 2023
Lanzamiento de androidx.compose.animation:animation-*:1.5.0-alpha01
. La versión 1.5.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Las APIs de
AnimatedContent
ahora son estables. Se cambió el nombre deAnimatedContentScope
aAnimatedContentTransitionScope
.scaleIn
yscaleOut
ahora son APIs estables. (Iaf54e).
Versión 1.4
Versión 1.4.3
3 de mayo de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
y androidx.compose.animation:animation-graphics:1.4.3
sin cambios (solo un aumento de versión).
Versión 1.4.2
19 de abril de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.2
, androidx.compose.animation:animation-core:1.4.2
y androidx.compose.animation:animation-graphics:1.4.2
sin cambios. La versión 1.4.2 contiene estas confirmaciones.
Versión 1.4.1
5 de abril de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.1
, androidx.compose.animation:animation-core:1.4.1
y androidx.compose.animation:animation-graphics:1.4.1
sin cambios. La versión 1.4.1 contiene estas confirmaciones.
Versión 1.4.0
22 de marzo de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.0
, androidx.compose.animation:animation-core:1.4.0
y androidx.compose.animation:animation-graphics:1.4.0
. La versión 1.4.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.3.0
- La etiqueta de herramientas es compatible con r
ememberInfiniteTransition
y con todas las funciones de extensión deInfiniteTransition
y Transition (p. ej.,InfiniteTransition#animateColor
) (I56ef7).
Versión 1.4.0-rc01
8 de marzo de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.0-rc01
, androidx.compose.animation:animation-core:1.4.0-rc01
y androidx.compose.animation:animation-graphics:1.4.0-rc01
sin cambios. La versión 1.4.0-rc01 contiene estas confirmaciones.
Versión 1.4.0-beta02
22 de febrero de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.0-beta02
, androidx.compose.animation:animation-core:1.4.0-beta02
y androidx.compose.animation:animation-graphics:1.4.0-beta02
sin cambios. La versión 1.4.0-beta02 contiene estas confirmaciones.
Versión 1.4.0-beta01
8 de febrero de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.0-beta01
, androidx.compose.animation:animation-core:1.4.0-beta01
y androidx.compose.animation:animation-graphics:1.4.0-beta01
sin cambios. La versión 1.4.0-beta01 contiene estas confirmaciones.
Versión 1.4.0-alpha05
25 de enero de 2023
Se lanzaron androidx.compose.animation:animation:1.4.0-alpha05
, androidx.compose.animation:animation-core:1.4.0-alpha05
y androidx.compose.animation:animation-graphics:1.4.0-alpha05
. La versión 1.4.0-alpha05 contiene estas confirmaciones.
Cambios
- Sin cambios en las bibliotecas de animación desde la última versión alfa, solo cambio de versión
Versión 1.4.0-alpha04
11 de enero de 2023
Lanzamiento de androidx.compose.animation:animation:1.4.0-alpha04
, androidx.compose.animation:animation-core:1.4.0-alpha04
y androidx.compose.animation:animation-graphics:1.4.0-alpha04
. La versión 1.4.0-alpha04 contiene estas confirmaciones.
Nuevas funciones
- La etiqueta de herramientas es compatible con
rememberInfiniteTransition
y con todas las funciones de extensión deInfiniteTransition
yTransition
(p. ej.,InfiniteTransition#animateColor
) (I56ef7).
Cambios en la API
- Las APIs de
InfiniteTransition#TransitionAnimationState
yInfiniteTransition#animations
ahora son públicas (I36682).
Versión 1.4.0-alpha03
7 de diciembre de 2022
Lanzamiento de androidx.compose.animation:animation:1.4.0-alpha03
, androidx.compose.animation:animation-core:1.4.0-alpha03
y androidx.compose.animation:animation-graphics:1.4.0-alpha03
. La versión 1.4.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- En las pruebas de IU que usan una regla de Compose, no se despacharán las continuaciones reanudadas durante las devoluciones de llamada de
withFrameNanos
hasta que todas las devoluciones de llamada de marco terminen de ejecutarse. Esto coincide con el comportamiento de Compose cuando se ejecuta normalmente. Sin embargo, las pruebas que dependen del comportamiento anterior pueden fallar. Esto solo debería afectar al código que llama awithFrameNanos
owithFrameMillis
de forma directa, y cuenta con una lógica fuera de la devolución de llamada que pasa a las funciones que pueden necesitar moverse dentro de las devoluciones de llamada. Consulta los cambios de la prueba de animación en esta CL para ver ejemplos. - Se agregó el parámetro opcional
onPerformTraversals: (Long) -> Unit
al constructorTestMonotonicFrameClock
y la función de fábrica para ejecutar el código después de las devoluciones de llamada dewithFrameNanos
, pero antes de reanudar las corrutinas de los emisores. (Idb413, b/254115946, b/222093277, b/255802670). - Se agregó un parámetro nuevo en
AnimatedContent
para la etiqueta de herramientas (Iebe2d).
Versión 1.4.0-alpha02
9 de noviembre de 2022
Lanzamiento de androidx.compose.animation:animation:1.4.0-alpha02
, androidx.compose.animation:animation-core:1.4.0-alpha02
y androidx.compose.animation:animation-graphics:1.4.0-alpha02
. La versión 1.4.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- Se agregó
ToolingState
para permitir que las herramientas cambien los estados internos de Compose (Ie6614).
Versión 1.4.0-alpha01
24 de octubre de 2022
Lanzamiento de androidx.compose.animation:animation:1.4.0-alpha01
, androidx.compose.animation:animation-core:1.4.0-alpha01
y androidx.compose.animation:animation-graphics:1.4.0-alpha01
. La versión 1.4.0-alpha01 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una animación de interrupción incorrecta en AnimatedContent (b/238662479).
Versión 1.3
Versión 1.3.3
11 de enero de 2023
Se lanzaron androidx.compose.animation:animation:1.3.3
, androidx.compose.animation:animation-core:1.3.3
y androidx.compose.animation:animation-graphics:1.3.3
. La versión 1.3.3 contiene estas confirmaciones.
- No hay cambios desde la versión 1.3.2.
Versión 1.3.2
7 de diciembre de 2022
Lanzamiento de androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
y androidx.compose.animation:animation-graphics:1.3.2
. La versión 1.3.2 contiene estas confirmaciones.
Correcciones de errores
- Actualización para admitir androidx.compose.ui 1.3.2
Versión 1.3.1
9 de noviembre de 2022
Lanzamiento de androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
y androidx.compose.animation:animation-graphics:1.3.1
. La versión 1.3.1 contiene estas confirmaciones.
Versión 1.3.0
24 de octubre de 2022
Lanzamiento de androidx.compose.animation:animation:1.3.0
, androidx.compose.animation:animation-core:1.3.0
y androidx.compose.animation:animation-graphics:1.3.0
. La versión 1.3.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.2.0
- Se logró la estabilidad de un nuevo conjunto de funciones de aceleración.
Versión 1.3.0-rc01
5 de octubre de 2022
Lanzamiento de androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
y androidx.compose.animation:animation-graphics:1.3.0-rc01
. La versión 1.3.0-rc01 contiene estas confirmaciones.
Versión 1.3.0-beta03
21 de septiembre de 2022
Se lanzaron androidx.compose.animation:animation:1.3.0-beta03
, androidx.compose.animation:animation-core:1.3.0-beta03
y androidx.compose.animation:animation-graphics:1.3.0-beta03
. La versión 1.3.0-beta03 contiene estas confirmaciones.
- No hay cambios desde la versión 1.3.0-beta02.
Versión 1.3.0-beta02
7 de septiembre de 2022
Se lanzaron androidx.compose.animation:animation:1.3.0-beta02
, androidx.compose.animation:animation-core:1.3.0-beta02
y androidx.compose.animation:animation-graphics:1.3.0-beta02
. La versión 1.3.0-beta02 contiene estas confirmaciones.
- Se quitó Kotlin.experimental de las opciones del compilador, ya que está obsoleto.
Versión 1.3.0-beta01
24 de agosto de 2022
Se lanzaron androidx.compose.animation:animation:1.3.0-beta01
, androidx.compose.animation:animation-core:1.3.0-beta01
y androidx.compose.animation:animation-graphics:1.3.0-beta01
. La versión 1.3.0-beta01 contiene estas confirmaciones.
Versión 1.3.0-alpha03
10 de agosto de 2022
Lanzamiento de androidx.compose.animation:animation:1.3.0-alpha03
, androidx.compose.animation:animation-core:1.3.0-alpha03
y androidx.compose.animation:animation-graphics:1.3.0-alpha03
. La versión 1.3.0-alpha03 contiene estas confirmaciones.
Cambios en la API
- Se agregó un parámetro nuevo en
Crossfade
,animateAsState
yAnimatable
para la etiqueta de herramientas (Iac08a). - Se agregó la función
atFraction
para definir fotogramas clave en una fracción de tiempo en lugar de una duración específica (I20c76, b/232059455).
Versión 1.3.0-alpha02
27 de julio de 2022
Se lanzaron androidx.compose.animation:animation:1.3.0-alpha02
, androidx.compose.animation:animation-core:1.3.0-alpha02
y androidx.compose.animation:animation-graphics:1.3.0-alpha02
. La versión 1.3.0-alpha02 contiene estas confirmaciones.
Versión 1.3.0-alpha01
29 de junio de 2022
Se lanzaron androidx.compose.animation:animation:1.3.0-alpha01
, androidx.compose.animation:animation-core:1.3.0-alpha01
y androidx.compose.animation:animation-graphics:1.3.0-alpha01
. La versión 1.3.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Nuevo objeto
LookaheadLayout
que admite un pase anticipado antes del diseño o la medición real. Esto permite realizar un cálculo previo del diseño cuando cambia y, al mismo tiempo, permite que la medición o el diseño posvisualización use el tamaño o la posición previamente calculados para animar el tamaño y las posiciones hacia el objetivo.SubcomposeLayouts
todavía no son compatibles, pero lo serán en una próxima versión (I477f5).
Versión 1.2
Versión 1.2.1
10 de agosto de 2022
Lanzamiento de androidx.compose.animation:animation:1.2.1
, androidx.compose.animation:animation-core:1.2.1
y androidx.compose.animation:animation-graphics:1.2.1
. La versión 1.2.1 contiene estas confirmaciones.
Versión 1.2.0
27 de julio de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
y androidx.compose.animation:animation-graphics:1.2.0
. La versión 1.2.0 contiene estas confirmaciones.
Cambios importantes desde la versión 1.1.0
- La animación de Compose ahora permite configurar la "Escala de duración de animador" desde las Opciones para desarrolladores
- Una gran selección de nuevas curvas de aceleración experimentales
AnimatedImageVector
ahora admiterepeatCount
yrepeatMode
Versión 1.2.0-rc03
29 de junio de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-rc03
, androidx.compose.animation:animation-core:1.2.0-rc03
y androidx.compose.animation:animation-graphics:1.2.0-rc03
. La versión 1.2.0-rc03 contiene estas confirmaciones.
- No hay cambios desde la versión 1.2.0-rc02.
Versión 1.2.0-rc02
22 de junio de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-rc02
, androidx.compose.animation:animation-core:1.2.0-rc02
y androidx.compose.animation:animation-graphics:1.2.0-rc02
. La versión 1.2.0-rc02 contiene estas confirmaciones.
Correcciones de errores
- Se quitó la anotación
ExperimentalEasingApi
en las funciones de aceleración (Ied441).
Versión 1.2.0-rc01
15 de junio de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-rc01
, androidx.compose.animation:animation-core:1.2.0-rc01
y androidx.compose.animation:animation-graphics:1.2.0-rc01
. La versión 1.2.0-rc01 contiene estas confirmaciones.
Cambios en la API
- Las interfaces en las bibliotecas de Compose ahora se compilan con métodos de interfaz predeterminados de jdk8 (I5bcf1).
Versión 1.2.0-beta03
1 de junio de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-beta03
, androidx.compose.animation:animation-core:1.2.0-beta03
y androidx.compose.animation:animation-graphics:1.2.0-beta03
. La versión 1.2.0-beta03 contiene estas confirmaciones.
Cambios en la API
- Se agregaron curvas de aceleración experimentales para las animaciones (I64a38).
Versión 1.2.0-beta02
18 de mayo de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-beta02
, androidx.compose.animation:animation-core:1.2.0-beta02
y androidx.compose.animation:animation-graphics:1.2.0-beta02
. La versión 1.2.0-beta02 contiene estas confirmaciones.
Versión 1.2.0-beta01
11 de mayo de 2022
Lanzamiento de androidx.compose.animation:animation:1.2.0-beta01
, androidx.compose.animation:animation-core:1.2.0-beta01
y androidx.compose.animation:animation-graphics:1.2.0-beta01
. La versión 1.2.0-beta01 contiene estas confirmaciones.
- Esta es la primera versión beta de 1.2. No hubo modificaciones desde la última versión alfa.
Versión 1.2.0-alpha08
20 de abril de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-alpha08
, androidx.compose.animation:animation-core:1.2.0-alpha08
y androidx.compose.animation:animation-graphics:1.2.0-alpha08
. La versión 1.2.0-alpha08 contiene estas confirmaciones.
Versión 1.2.0-alpha07
6 de abril de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-alpha07
, androidx.compose.animation:animation-core:1.2.0-alpha07
y androidx.compose.animation:animation-graphics:1.2.0-alpha07
. La versión 1.2.0-alpha07 contiene estas confirmaciones.
Cambios en la API
AnimatedImageVector
ahora admiterepeatCount
yrepeatMode
(Ia3e75, b/199304067).
Versión 1.2.0-alpha06
23 de marzo de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-alpha06
, androidx.compose.animation:animation-core:1.2.0-alpha06
y androidx.compose.animation:animation-graphics:1.2.0-alpha06
. La versión 1.2.0-alpha06 contiene estas confirmaciones.
Cambios en la API
- Se actualizó el análisis de elementos de diseño vectoriales para admitir la duplicación automática para girar el contenido de un
VectorPainter
si la dirección de diseño actual es de derecha a izquierda (I79cd9, b/185760237).
Correcciones de errores
- Se actualizaron las APIs de gráficos vectoriales para usar la anotación componible correcta
@VectorComposable
en lugar de@UiComposable
(I942bc).
Versión 1.2.0-alpha05
9 de marzo de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-alpha05
, androidx.compose.animation:animation-core:1.2.0-alpha05
y androidx.compose.animation:animation-graphics:1.2.0-alpha05
. La versión 1.2.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- ¡Hip, hip, hurra! La animación de Compose ahora permite configurar la "Escala de duración de animador" desde las Opciones para desarrolladores (I5a4fc, b/161675988).
Versión 1.2.0-alpha04
23 de febrero de 2022
Se lanzaron androidx.compose.animation:animation:1.2.0-alpha04
, androidx.compose.animation:animation-core:1.2.0-alpha04
y androidx.compose.animation:animation-graphics:1.2.0-alpha04
. La versión 1.2.0-alpha04 contiene estas confirmaciones.
Versión 1.2.0-alpha03
9 de febrero de 2022
Lanzamiento de androidx.compose.animation:animation:1.2.0-alpha03
, androidx.compose.animation:animation-core:1.2.0-alpha03
y androidx.compose.animation:animation-graphics:1.2.0-alpha03
. La versión 1.2.0-alpha03 contiene estas confirmaciones.
Versión 1.2.0-alpha02
26 de enero de 2022
Lanzamiento de androidx.compose.animation:animation:1.2.0-alpha02
, androidx.compose.animation:animation-core:1.2.0-alpha02
y androidx.compose.animation:animation-graphics:1.2.0-alpha02
. La versión 1.2.0-alpha02 contiene estas confirmaciones.
Versión 1.2.0-alpha01
12 de enero de 2022
Lanzamiento de androidx.compose.animation:animation:1.2.0-alpha01
, androidx.compose.animation:animation-core:1.2.0-alpha01
y androidx.compose.animation:animation-graphics:1.2.0-alpha01
. La versión 1.2.0-alpha01 contiene estas confirmaciones.
Cambios en la API
- Usa
AnimatedImageVector.animatedVectorResource
en lugar deanimatedVectorResource
para cargar un archivo de recursos<animated-vector>
.- Usa
rememberAnimatedVectorResource
en lugar deAnimatedImageVector#painterFor
para renderizar unAnimatedImageVector
(I9c300).
- Usa
Correcciones de errores
- Se agregaron métodos toString a Animatable y AnimationResult (Icd3a6).
Actualizaciones de dependencias
- Ahora depende de Kotlin versión
1.6.10
.
Versión 1.1
Versión 1.1.1
23 de febrero de 2022
Se lanzaron androidx.compose.animation:animation:1.1.1
, androidx.compose.animation:animation-core:1.1.1
y androidx.compose.animation:animation-graphics:1.1.1
. La versión 1.1.1 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió
NullPointerException
enandroidx.compose.ui.platform.RenderNodeLayer.updateDisplayList
(aosp/1947059, b/206677462). - Se corrigió la falla que causaba el contenido del portapapeles mientras se leía desde el portapapeles en Android (I06020, b/197769306).
- Se corrigió la lectura de derecha a izquierda en
LazyVerticalGrid
(aosp/1931080, b/207510535).
Versión 1.1.0
9 de febrero de 2022
Lanzamiento de androidx.compose.animation:animation:1.1.0
, androidx.compose.animation:animation-core:1.1.0
y androidx.compose.animation:animation-graphics:1.1.0
. La versión 1.1.0 contiene estas confirmaciones.
Cambios importantes desde 1.0.0
- Se agregó compatibilidad estable con el efecto de desplazamiento de Android 12.
- Se agregaron mejoras en el tamaño de los objetivos táctiles.
- Ten en cuenta que, con respecto a Compose 1.0, los componentes de Material expandirán su espacio de diseño para cumplir con los lineamientos de accesibilidad de Material relativos al tamaño del objetivo táctil. Por ejemplo, el objetivo táctil del botón se expandirá hasta un tamaño mínimo de 48 x 48 dp, incluso si configuras el tamaño del botón para que sea más pequeño. Esto alinea Compose Material con el mismo comportamiento de los componentes de Material Design y proporciona un comportamiento coherente si combinas View y Compose. Este cambio también garantiza que, cuando crees tu IU mediante componentes de Compose Material, se cumplan los requisitos mínimos de la accesibilidad de objetivos táctiles.
- Se agregó compatibilidad estable con Navigation Rail.
- Varias API que antes eran experimentales se pasaron a niveles estables.
- Se agregó compatibilidad con versiones más recientes de Kotlin.
Versión 1.1.0-rc03
26 de enero de 2022
Lanzamiento de androidx.compose.animation:animation:1.1.0-rc03
, androidx.compose.animation:animation-core:1.1.0-rc03
y androidx.compose.animation:animation-graphics:1.1.0-rc03
. La versión 1.1.0-rc03 contiene estas confirmaciones.
Correcciones de errores
- Se actualizó para admitir Compose Material 1.1.0-rc03.
Versión 1.1.0-rc01
15 de diciembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-rc01
y androidx.compose.animation:animation-core:1.1.0-rc01
. La versión 1.1.0-rc01 contiene estas confirmaciones.
Cambios en la API
- Usa
AnimatedImageVector.animatedVectorResource
en lugar deanimatedVectorResource
para cargar un archivo de recursos<animated-vector>
.- Usa
rememberAnimatedVectorResource
en lugar deAnimatedImageVector#painterFor
para renderizar unAnimatedImageVector
(I9c300).
- Usa
Versión 1.1.0-beta04
1 de diciembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-beta04
, androidx.compose.animation:animation-core:1.1.0-beta04
y androidx.compose.animation:animation-graphics:1.1.0-beta04
. La versión 1.1.0-beta04 contiene estas confirmaciones.
Nuevas funciones
- Se actualizó para que sea compatible con Kotlin
1.6.0
.
Versión 1.1.0-beta03
17 de noviembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-beta03
, androidx.compose.animation:animation-core:1.1.0-beta03
y androidx.compose.animation:animation-graphics:1.1.0-beta03
. La versión 1.1.0-beta03 contiene estas confirmaciones.
Cambios en la API
- Se agregó el nuevo modificador Modifier.onPlaced para permitir que se observe el cambio de posición. Por lo tanto, se pueden realizar cambios adicionales en la compensación del modificador secundario a partir del cambio de posición observado (I558fd).
Se agregó compatibilidad con contentKey en Crossfade. El sistema de animación usará ContentKey para verificar la igualdad. Por lo tanto, el diffing personalizado en los estados se puede lograr si se especifica contentKey adecuadamente según los diferentes estados.
Además, se usará ContentKey como una clave para guardar y restablecer contenido (I2e055, b/197907070).
Versión 1.1.0-beta02
3 de noviembre de 2021
Se lanzaron androidx.compose.animation:animation:1.1.0-beta02
, androidx.compose.animation:animation-core:1.1.0-beta02
y androidx.compose.animation:animation-graphics:1.1.0-beta02
. La versión 1.1.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Nuevas API de Animation para herramientas de asistencia. Específicamente, permiten que las herramientas inspeccionen las animaciones y sus configuraciones en Transiciones (I4116e).
Versión 1.1.0-beta01
27 de octubre de 2021
Se lanzaron androidx.compose.animation:animation:1.1.0-beta01
, androidx.compose.animation:animation-core:1.1.0-beta01
y androidx.compose.animation:animation-graphics:1.1.0-beta01
. La versión 1.1.0-beta01 contiene estas confirmaciones.
Cambios en la API
- Nuevas API de Animation para herramientas de asistencia. Específicamente, permiten que las herramientas inspeccionen las animaciones y sus configuraciones en Transiciones (I4116e).
Versión 1.1.0-alpha06
13 de octubre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha06
, androidx.compose.animation:animation-core:1.1.0-alpha06
y androidx.compose.animation:animation-graphics:1.1.0-alpha06
. La versión 1.1.0-alpha06 contiene estas confirmaciones.
Versión 1.1.0-alpha05
29 de septiembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha05
, androidx.compose.animation:animation-core:1.1.0-alpha05
y androidx.compose.animation:animation-graphics:1.1.0-alpha05
. La versión 1.1.0-alpha05 contiene estas confirmaciones.
Cambios en la API
EnterTransition
,ExitTransition
y algunas de las API deAnimatedVisibility
se volvieron estables.MutableTransitionState.isIdle
ya no es experimental. (I5072d)Cambio rotundo: Se movieron lambdas de las fábricas Enter/ExitTransition a la última posición de la lista de parámetros. (I5072d)
Versión 1.1.0-alpha04
15 de septiembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha04
, androidx.compose.animation:animation-core:1.1.0-alpha04
y androidx.compose.animation:animation-graphics:1.1.0-alpha04
. La versión 1.1.0-alpha04 contiene estas confirmaciones.
Versión 1.1.0-alpha03
1 de septiembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha03
, androidx.compose.animation:animation-core:1.1.0-alpha03
y androidx.compose.animation:animation-graphics:1.1.0-alpha03
. La versión 1.1.0-alpha03 contiene estas confirmaciones.
Nuevas funciones
- Se actualizó Compose
1.1.0-alpha03
para que dependa de Kotlin1.5.30
. (I74545)
Versión 1.1.0-alpha02
18 de agosto de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha02
, androidx.compose.animation:animation-core:1.1.0-alpha02
y androidx.compose.animation:animation-graphics:1.1.0-alpha02
. La versión 1.1.0-alpha02 contiene estas confirmaciones.
Cambios en la API
- StartOffset ahora es compatible con infiniteRepeatable y repeatable, como una forma de retrasar la hora de inicio o adelantar la animación antes de que comience la animación. Este desplazamiento de inicio no se repetirá. (Ic679f, b/195079908)
- Nueva transición de entrada y salida de la escala. Se puede usar en combinación con otros tipos de transiciones de entrada y salida. (I372da, b/191325593)
Versión 1.1.0-alpha01
4 de agosto de 2021
Lanzamiento de androidx.compose.animation:animation:1.1.0-alpha01
, androidx.compose.animation:animation-core:1.1.0-alpha01
y androidx.compose.animation:animation-graphics:1.1.0-alpha01
. La versión 1.1.0-alpha01 contiene estas confirmaciones.
Cambios en la API
AnimatedImageVector
y las API relacionadas ahora están en el nuevo móduloandroidx.compose.animation:animation-graphics
. (I60873)
Correcciones de errores
- Se movió
InfiniteAnimationPolicy
a :compose:ui. (I5eb09, b/160602714)
Versión 1.0
Versión 1.0.5
3 de noviembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.5
y androidx.compose.animation:animation-core:1.0.5
. La versión 1.0.5 contiene estas confirmaciones.
Correcciones de errores
- Se corrigió una falla en el seguimiento de las instancias de derivedStateOf (aosp/1792247).
Versión 1.0.4
13 de octubre de 2021
Se lanzaron androidx.compose.animation:animation:1.0.4
y androidx.compose.animation:animation-core:1.0.4
. La versión 1.0.4 contiene estas confirmaciones.
Actualizaciones de dependencias
- Se actualizó para depender de Kotlin
1.5.31
Versión 1.0.3
29 de septiembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.3
y androidx.compose.animation:animation-core:1.0.3
. La versión 1.0.3 contiene estas confirmaciones.
Actualizaciones de dependencias
- Se actualizó para depender de Kotlin
1.5.30
Versión 1.0.2
1 de septiembre de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.2
y androidx.compose.animation:animation-core:1.0.2
. La versión 1.0.2 contiene estas confirmaciones.
Se actualizó para que sea compatible con la versión 1.0.2
de Compose. Compose 1.0.2
continúa siendo compatible con Kotlin 1.5.21
.
Versión 1.0.1
4 de agosto de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.1
y androidx.compose.animation:animation-core:1.0.1
. La versión 1.0.1 contiene estas confirmaciones.
Actualizaciones de dependencias
- Se actualizó para depender de Kotlin
1.5.21
.
Versión 1.0.0
28 de julio de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0
y androidx.compose.animation:animation-core:1.0.0
. La versión 1.0.0 contiene estas confirmaciones.
Funciones principales de la versión 1.0.0
Esta es la primera versión estable de Compose. Consulta el blog oficial de Lanzamientos de Compose para obtener más información.
Errores conocidos
Si usas Android Studio Bumblebee Canary 4 o AGP
7.1.0-alpha04
/7.1.0-alpha05
, es posible que se produzca la siguiente falla:java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
Para sortear el problema, aumenta temporalmente tu minSdkVersion a más de 24 en el archivo
build.gradle
. Este error se solucionará en la próxima versión de Android Studio Bumblebee y en el AGP7.1
. (b/194289155)
Versión 1.0.0-rc02
14 de julio de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-rc02
y androidx.compose.animation:animation-core:1.0.0-rc02
. La versión 1.0.0-rc02 contiene estas confirmaciones.
Versión 1.0.0-rc01
1 de julio de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-rc01
y androidx.compose.animation:animation-core:1.0.0-rc01
. La versión 1.0.0-rc01 contiene estas confirmaciones.
Correcciones de errores
- Se movió
InfiniteAnimationPolicy
aandroidx.compose.ui:ui
. (I5eb09, b/160602714)
Versión 1.0.0-beta09
16 de junio de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta09
y androidx.compose.animation:animation-core:1.0.0-beta09
. La versión 1.0.0-beta09 contiene estas confirmaciones.
Cambios en la API
- Nuevo elemento componible
AnimatedContent
. Administra su cambio de contenido usando unContentTransform
personalizable a medida que ingresa contenido nuevo de destino y sale el contenido inicial. Se puede usar una combinación diferente de transiciones de entrada y salida para producir un estilo y un aspecto personalizados. Como parte de la transformación de contenido,AnimatedContent
anima automáticamente su tamaño para que coincida con el contenido entrante. (I2c3df) - Se quitó
ManualFrameClock
. Si necesitas controlar animaciones, usacomposeTestRule.mainClock
. (I3c3e8, b/189951065)
Se agregaron reglas de perfiles
En esta versión, se agregaron reglas de perfiles a los siguientes módulos de Compose (I14ed6):
- androidx.compose.animation
- androidx.compose.animation-core
- androidx.compose.foundation
- androidx.compose.foundation-layout
- androidx.compose.material
- androidx.compose.material-ripple
- androidx.compose.runtime
- androidx.compose.ui
- androidx.compose.ui.geometry
- androidx.compose.ui.graphics
- androidx.compose.ui.text
- androidx.compose.ui.text
- androidx.compose.ui.unit
- androidx.compose.ui.util
¿Qué son las reglas de perfiles?
Las reglas de perfiles de una biblioteca se especifican en un archivo de texto
baseline-prof.txt
, ubicado ensrc/main
o el directorio equivalente. El archivo especifica una regla por línea, donde una regla en este caso es un patrón para la coincidencia con métodos o clases de la biblioteca. La sintaxis de estas reglas es un superconjunto del formato de perfil ART legible que se usa cuando se implementaadb shell profman --dump-classes-and-methods ...
. Estas reglas adoptan una de dos formas para segmentar métodos o clases.Una regla de métodos tendrá el siguiente patrón:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
Una regla de clases tendrá el siguiente patrón:
<CLASS_DESCRIPTOR>
Aquí,
<FLAGS>
es uno o más caracteresH
,S
yP
, los cuales indican si este método debe marcarse como "Hot" (caliente), "Startup" (inicio) o "Post Startup" (posterior al inicio).El
<CLASS_DESCRIPTOR>
es el descriptor de la clase a la que pertenece el método segmentado. Por ejemplo, la claseandroidx.compose.runtime.SlotTable
tendría un descriptor deLandroidx/compose/runtime/SlotTable;
.El
<METHOD_SIGNATURE>
es la firma del método y, además, incluye el nombre, los tipos de parámetros y los tipos de datos que muestra. Por ejemplo, el métodofun isPlaced(): Boolean
enLayoutNode
tiene la firmaisPlaced()Z
.Estos patrones pueden tener comodines (
**
,*
y?
) para tener una sola regla que abarque varios métodos o clases.
¿Para qué sirven las reglas?
Un método con la marca
H
indica que es "hot" y debe compilarse con anticipación.Un método con la marca
S
indica que se llama durante el inicio y debe compilarse con anticipación para evitar el costo de interpretarlo y compilarlo en el momento del inicio.Un método que tiene la marca
P
indica que es un método que se llama después del inicio.Una clase presente en este archivo indica que se usa durante el inicio y debe asignarse previamente en el montón para evitar el costo de cargarla.
¿Cómo funciona?
- Las bibliotecas pueden definir estas reglas que se empaquetarán en artefactos de AAR. Luego, cuando se compila una app que incluye esos artefactos, esas reglas se combinan y se usan para compilar un perfil de ART binario compacto específico para la app. De esta manera, ART puede tomar este perfil cuando se instala la app en dispositivos para compilar con anticipación un subconjunto específico de la aplicación a fin de mejorar su rendimiento, especialmente en la primera ejecución. Ten en cuenta que esta acción no tendrá efecto en las aplicaciones depurables.
Versión 1.0.0-beta08
2 de junio de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta08
y androidx.compose.animation:animation-core:1.0.0-beta08
. La versión 1.0.0-beta08 contiene estas confirmaciones.
Correcciones de errores
- Ahora
detectDragGesures
,detectVerticalGestures
ydetectHorizontalGestures
consumirán el cambio de posición automáticamente, sin necesidad de llamar a change.consumePositionChange en las devoluciones de llamada onDrag (I42fc4, b/185096350, b/187320697). - Se modificó
Modifier.onGloballyPositioned()
para informar las coordenadas de este modificador en la cadena de modificador, en lugar de las coordenadas de diseño después de aplicar todos los modificadores. Es decir, ahora el orden de los modificadores afecta las coordenadas que se informarán. (Ieb67d, b/177926591)
Versión 1.0.0-beta07
18 de mayo de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta07
y androidx.compose.animation:animation-core:1.0.0-beta07
. La versión 1.0.0-beta07 contiene estas confirmaciones.
Cambios en la API
- Nueva API de
AnimatedVisibility
que admite visibilidad para que se especifique en unMutableTransitionState
. Esto también permite que los estados de la animación se observen de forma externa aAnimatedVisibility
mediantecurrentState
yisIdle
.- Nueva compatibilidad con transiciones secundarias en Transition
- Admite animación personalizada de transición de entrada y salida en AnimatedVisibility con AnimationScope.transition
- Nuevo modificador animateEnterExit accesible para todos los elementos secundarios de AnimatedVisibility
- Dejaron de estar disponibles las API de AnimatedVisibility que toman un parámetro
initiallyVisible
. (I702f3)
Versión 1.0.0-beta06
5 de mayo de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta06
y androidx.compose.animation:animation-core:1.0.0-beta06
. La versión 1.0.0-beta06 contiene estas confirmaciones.
Versión 1.0.0-beta05
21 de abril de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta05
y androidx.compose.animation:animation-core:1.0.0-beta05
. La versión 1.0.0-beta05 contiene estas confirmaciones.
Correcciones de errores
- Los archivos AndroidManifest de ui-test-manifest y ui-tooling-data ahora son compatibles con Android 12 (I6f9de, b/184718994).
Versión 1.0.0-beta04
7 de abril de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta04
y androidx.compose.animation:animation-core:1.0.0-beta04
. La versión 1.0.0-beta04 contiene estas confirmaciones.
Cambios en la API
- Se quitaron las instancias públicas de
RowScope
,ColumnScope
,BoxScope
yBoxWithConstraintsScope
. (I4e83e, b/181869067)
Versión 1.0.0-beta03
24 de marzo de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta03
y androidx.compose.animation:animation-core:1.0.0-beta03
. La versión 1.0.0-beta03 contiene estas confirmaciones.
Versión 1.0.0-beta02
10 de marzo de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta02
y androidx.compose.animation:animation-core:1.0.0-beta02
. La versión 1.0.0-beta02 contiene estas confirmaciones.
Correcciones de errores
- Se aplicaron restricciones sobre el uso público de las API experimentales. (I6aa29, b/174531520)
Versión 1.0.0-beta01
24 de febrero de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-beta01
y androidx.compose.animation:animation-core:1.0.0-beta01
. La versión 1.0.0-beta01 contiene estas confirmaciones.
Esta es la primera versión de Compose 1.0.0 Beta.
Cambios en la API
InteractionState
se reemplazó por[Mutable]InteractionSource
- Las interfaces son responsables de emitir o recopilar eventos de interacción.
- En lugar de pasar el elemento
interactionState = remember { InteractionState() }
a componentes comoButton
yModifier.clickable()
, usa el objetointeractionSource = remember { MutableInteractionSource() }
. - En lugar del elemento
Interaction.Pressed in interactionState
, debes usar las funciones de extensión en el objeto InteractionSource, como InteractionSource.collectIsPressedAsState(). - Para casos complejos de uso, puedes usar el elemento InteractionSource.interactions para observar el flujo de Interactions. Para obtener más información, consulta la documentación y ejemplos de InteractionSource.
- (I85965, b/152525426, b/171913923, b/171710801, b/174852378)
- Los paquetes de los métodos smoothScrollBy y scrollBy migraron a
androidx.compose.foundation.gestures.*
. (I3f7c1, b/175294473) - Se cambiaron los nombres de los modificadores de tamaño. Se cambió el nombre de modifier.width a requiredWidth, de modifier.height a requiredHeight y de modifier.size a requiredSize. Se cambió el nombre de modifier.preferredWidth a width, de preferredHeight a height y de preferredSize a size. (I5b414)
- Se migró Orientation al paquete de base. Se migró VelocirtTracker de ui.gesture a ui.input.pointer. (Iff4a8, b/175294473)
- Se quitó AnimationClockObservable, así como sus subclases. Se quitó AnimatedFloat. (Icde52, b/177457083)
- Modifier.draggable ahora acepta DraggableState en lugar de una expresión lambda simple. Para obtener el mismo comportamiento que antes, puedes crear un estado a través de
rememberDraggableState { delta -> }
. (Ica70f, b/175294473) - Se quitaron las API de animate, animatedValue y AnimatedValue (If27bc, b/177457083).
- Se quitó AnimationEndReason.Interrupted. Si se interrumpe la animación, se mostrará una CancellationException. (I2cbbc, b/179695417)
- Se quitó la API de TargetAnimation. (If47d1, b/177457083)
Versión 1.0.0-alpha12
10 de febrero de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha12
y androidx.compose.animation:animation-core:1.0.0-alpha12
. La versión 1.0.0-alpha12 contiene estas confirmaciones.
Cambios en la API
Modifier.pointerInput
ahora requiere claves de memoria para indicar cuándo se debe reiniciar la corrutina de detección de la entrada del puntero para las dependencias nuevas. (I849cd)- El nombre de Bounds se cambió a DpRect. (I4b32a)
- Se unificó el nombre del parámetro AnimationSpec con animationSpec en todo el sistema de animación. También se restringieron EnterTransition y ExitTransition a fin de aceptar FiniteAnimationSpec. (Ie47c5, b/177457083)
- Animatable.snapTo y Animatable.stop ahora son funciones de suspensión. (If4288)
- Se quitará el objeto
savedInstanceState { 0 }
que admite composición, de forma similar a como se quitóstate { 0 }
, que también admitía composición, y ahora se promociona el uso deremember { mutableStateOf(0) }
, por ejemplo. En su lugar, se debe usarrememberSaveable { mutableStateOf(0) }
, que se guardará y restablecerá automáticamente si el tipo usado dentro de MutableState se puede almacenar en el paquete. Si antes pasabas un objeto Saver personalizado, ahora debes usar una sobrecarga nueva de rememberSaveable, que tiene el parámetrostateSaver
. Se verá de la siguiente manera:val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) }
. (Ib4c26, b/177338004) - Se actualizó la firma del método Crossfade para mantener la coherencia con el resto del sistema de animación. (Ib05ed, b/177457083)
- Se cambió el nombre de rememberSavedInstanceState() a rememberSaveable() y se movió al paquete androidx.compose.runtime.saveable. (I1366e, b/177338004)
- Se cambió el nombre de RerestableStateHolder a SaveableStateHolder y se movió al paquete androidx.compose.runtime.saveable. Se cambió el nombre del método interno RerestableStateProvider a SaveableStateProvider. Se quitó el tipo genérico para que cualquiera pueda pasar como clave. Ya no se necesita la anotación experimental. (I0902e, b/174598702)
- Se actualizó la API de Modifier.animateContentSize para mantener la coherencia con el resto del sistema de animación. (I0bf75, b/177457083)
- AnimatedValue/Float dejó de estar disponible. En su lugar, usa Animatable. (I71345, b/177457083)
- tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter y pressIndicititGestureFilter dejaron de estar disponibles. En su lugar, usa Modifier.clickable o Modifier.pointerInput con la función detectTapGestures. (I6baf9, b/175294473)
- Se introdujo un elemento de contexto de corrutinas
InfiniteAnimationPolicy
que se aplicará en animaciones infinitas. No se instala ninguna política de forma predeterminada, excepto cuando se ejecutan pruebas conComposeTestRule
. (I50ec4, b/151940543) - Se quitaron los métodos copy() y de desestructuración de varias clases en las que se usaban con muy poca frecuencia. (I26702, b/178659281)
- Ahora, el tiempo de reproducción en la animación se extiende a nanosegundos. (If776a)
- El artefacto compose:runtime-dispatch dejó de estar disponible. Ahora se puede encontrar MonotonicFrameClock en compose:runtime y AndroidUiDispatcher en compose:ui. (Ib5c36)
- Se agregaron
Animation.isInfinite
yVectorizedAnimationSpec.isInfinite
, que indican si una animación es infinita. Se pueden usar para un lograr un mejor manejo a la hora de implementar animaciones. Por ejemplo, se puede mostrar un mensaje especial de "tiempo restante" o se puede cancelar la animación durante las pruebas a fin de evitar la inactividad indefinida. (Iebb05, b/151940543) - En lugar de Uptime, usa Long como tipo de tiempo de animación (Ie3aa7, b/177420019).
Versión 1.0.0-alpha11
28 de enero de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha11
y androidx.compose.animation:animation-core:1.0.0-alpha11
. La versión 1.0.0-alpha11 contiene estas confirmaciones.
Cambios en la API
- La transición TransitionDefinition-based dejó de estar disponible (I0ac57).
- Se agrega un campo de etiqueta para que las animaciones secundarias y de Transition se muestren en herramientas (I619fb).
- animateAsState ahora es animateFooAsState, donde Foo es el tipo de variable que se anima, p. ej., Float, Dp, Offset, etc. (Ie7e25)
- Se agregó una nueva InfiniteTransition que ejecuta cualquier cantidad de animaciones secundarias. (I1da81)
- Cambia las interfaces de parámetros con estado de Material para tener funciones @Composable que muestren
State<T>
. Se agregó Animatable.asState() para facilitar la conversión de un objeto Animatable en un State. También cambia animElevation para que sea una extensión de suspensión en Animatable. (If613c)
Correcciones de errores
- onCommit, onDispose y onActive dejaron de estar disponibles, y se los reemplazó con las API de SideEffect y DisposableEffect. (If760e)
- Ahora se admite el State inicial en updateTransition. (Ifd51d).
- Se agregó un parámetro de descripción de contenido a Image y Icon. Este se usa para proporcionar una descripción a los servicios de accesibilidad. (I2ac4c)
- invalidate y compositionReference() dejaron de estar disponibles, y se reemplazaron con currentRecomposeScope y rememberCompositionReference, respectivamente. (I583a8)
- Duration y Uptime se reemplazarán con Long en milisegundos, y este paso quitará la dependencia de entrada del puntero en esas clases. (Ia33b2, b/175142755, b/177420019)
- Ahora, clickable, toggleable y selectable pueden crearse fuera de las composiciones. (I0a130, b/172938345, b/175294473)
- Se cambió la aceleración a una interfaz funcional. (Ib14e5).
- Se agregó un método de fábrica
items(count: Int)
nuevo para el alcance de LazyColumn/LazyRow/LazyVerticalGrid.items(items: List)
yitemsIndexed(items: List)
ahora son funciones de extensión, asíque debes importarlas manualmente cuando las uses. Se agregaron sobrecargas de extensiones nuevas para Arrays: items(items: Array) y itemsIndexed(Array). (I803fc, b/175562574) - Se implementó TestCoroutineDispatcher en pruebas. (I532b6)
- Se quitó PointerInputData y se modificó el PointerInputChange para otorgarle todos los campos de PointerInputData. Se convirtieron en internos los elementos PointerInputEvent y PointerInputEventData debido a que no se usan en ninguna API pública. (Ifff97, b/175142755)
Versión 1.0.0-alpha10
13 de enero de 2021
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha10
y androidx.compose.animation:animation-core:1.0.0-alpha10
. La versión 1.0.0-alpha10 contiene estas confirmaciones.
Cambios en la API
- Se modificó Velocity para que tuviera partes de componentes y operaciones matemáticas. (Ib0447)
- Se cambió el nombre de
@ExperimentalTesting
a@ExperimentalTestApi
para que sea coherente con anotaciones de API experimentales similares. (Ia4502, b/171464963) - Se cambió el nombre de Position a DpOffset y se quitó getDistance(). (Ib2dfd)
- Se quitó la API pública de Any.identityHashCode(). (I025d7)
Correcciones de errores
- Se agregó la nueva API de
Animatable
basada en corrutinas que garantiza la exclusividad mutua entre sus animaciones. Se agregó DecayAnimationSpec para admitir animaciones de disminución multidimensionales. (I820f2, b/168014930) - Se reemplazó
animate()
conanimateAsState()
, que muestraState<T>
, en lugar deT
. Esto mejora el rendimiento, ya que el alcance de la invalidación se puede limitar a donde se lee el valor State. (Ib179e)
Versión 1.0.0-alpha09
16 de diciembre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha09
y androidx.compose.animation:animation-core:1.0.0-alpha09
. La versión 1.0.0-alpha09 contiene estas confirmaciones.
Cambios en la API
- Se movieron p.VectorConverter, Position.VectorConverter, etc. a animation-core, y dejaron de estar disponibles los objetos VectorConveters anteriores. (If0c4b)
- Se introdujo un conjunto completamente nuevo de API de Transition con una facilidad de uso mejorada y compatibilidad con animaciones agregadas de forma dinámica, y objetivos de animación calculados de manera dinámica. Estas API se marcan como experimentales para facilitar la diferenciación de la API de TransitionDefinition-based. (Ia7fe3)
Correcciones de errores
- Las expresiones lambda en los modificadores de compensación ahora muestran IntOffset en lugar de Float. (Ic9ee5, b/174137212, b/174146755)
- Dejaron de estar disponibles los objetos LazyColumnFor, LazyRowFor, LazyColumnForIndexed y LazyRowForIndexed. En su lugar, usa LazyColumn y LazyRow. (I5b48c)
- Se cambió el nombre de HandlePointerInputScope a AwaitPointerEventScope y el de handlePointerInput() a awaitPointerEventScope() para las API de entrada de puntero de suspensión. (Idf0a1, b/175142755)
- Se agregó una función infiniteRepeatable para crear InfiniteRepetableSpec. (I668e5)
- Se quitó la anotación ExperimentalPointerInput. (Ia7a24)
Versión 1.0.0-alpha08
2 de diciembre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha08
y androidx.compose.animation:animation-core:1.0.0-alpha08
. La versión 1.0.0-alpha08 contiene estas confirmaciones.
Cambios en la API
- Se agregó la comprobación de lint para el nombre y la posición del parámetro lambda que se pueden componer a fin de verificar la coherencia con los lineamientos de Compose.
También se migraron algunas API que usaban
children
como nombre de su lambda al final acontent
, según la comprobación y orientación de lint. (Iec48e) - Se quitaron las API que habían dejado de estar disponibles:
- Se quitó
Modifier.onPositioned
; usaModifier.onGloballyPositioned
. - Se quitó
Modifier.onDraw
; usaModifier.onDrawBehind
. - Se quitó
Modifier.plus
; usaModifier.then
. - Se quitó
Color.Unset
; usaColor.Unspecified
. - Se quitó la clase
PxBounds
. En su lugar, usaRect
. - (Ie9d02, b/172562222)
- Se quitó
- Se agregó una opción temporal para permitir que MonotonicFrameClock controle a TestAnimationClock. (I1403b, b/173402197)
Correcciones de errores
- Se cambió el nombre de Modifier.drawLayer a Modifier.graphicsLayer, y se actualizaron las clases relacionadas con GraphicsLayer según los comentarios acordados de la API. (I0bd29, b/173834241)
- Se agregaron API de Modifier.scale/rotate como convenientes para drawLayer.
- Se cambió el nombre de modificador.drawOpacity a Modifier.alpha.
- Se cambió el nombre de Modif.drawShadow a Modifier.shadow. (I264ca, b/173208140)
- Los campos de posición y tiempo de actividad de PointerInputData se hicieron no nulos. (Id468a)
- Se cambiaron los nombres de los modificadores de offsetPx a offset. Ahora toman parámetros lambda en lugar de State. (Ic3021, b/173594846)
- Se agregaron API nuevas para las animaciones que se ejecutan en corrutinas. (Ied662)
- Los entornos Ambient con el nombre
Ambient
como sufijo dejaron de estar disponibles, y se los reemplazó por nuevas propiedades con el prefijo Ambient, en función de otros lineamientos de la API de Compose y Ambients. (I33440) - El control de tiempo en las pruebas (TestAnimationClock y sus usos) ahora es experimental. (I6ef86, b/171378521)
- Se quitó el módulo ui-tests y sus stubs. (I3a7cb)
- Se cambió el nombre de la función
RestorableStateHolder.withRestorableState
porRestorableStateProvider
. (I66640) - Se actualizó la interfaz de Alignment y se hizo funcional. (I46a07, b/172311734)
Versión 1.0.0-alpha07
11 de noviembre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha07
y androidx.compose.animation:animation-core:1.0.0-alpha07
. La versión 1.0.0-alpha07 contiene estas confirmaciones.
Correcciones de errores
- Las bases AmbientTextStyle, ProvideTextStyle y AmbientContentColor ya no están disponibles. En su lugar, utiliza las nuevas versiones que se proporcionan en la biblioteca de Material. En el caso de las aplicaciones que no son de Material, deberás crear tus propios ambientes de temas específicos de sistemas de diseño que se puedan consumir en tus componentes. (I74acc, b/172067770)
- foundation.Text dejó de estar disponible y se reemplazó por material.Text. Para ver una API de texto básica y sin tendencias que no consuma valores de un tema, consulta androidx.compose.foundation.BasicText. (If64cb)
- Se quitó MeasureResult de MeasureScope. (Ibf96d, b/171184002)
- Varios símbolos relacionados con el diseño se movieron de androidx.compose.ui a androidx.compose.layout.ui. (I0fa98, b/170475424)
Versión 1.0.0-alpha06
28 de octubre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha06
y androidx.compose.animation:animation-core:1.0.0-alpha06
. La versión 1.0.0-alpha06 contiene estas confirmaciones.
Cambios en la API
- Se habilitaron transiciones en ComposeTestRule y se quitó la opción que permitía habilitar el cursor intermitente desde ComposeTestRule. (If0de3)
Versión 1.0.0-alpha05
14 de octubre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha05
y androidx.compose.animation:animation-core:1.0.0-alpha05
. La versión 1.0.0-alpha05 contiene estas confirmaciones.
Cambios en la API
- Nueva interfaz de Animation y subclases: estas clases almacenan las condiciones de inicio y finalización de las animaciones. Por lo tanto, permiten que el valor y la velocidad se consulten solo durante el tiempo de reproducción. (Ie95bd, b/163329867)
Correcciones de errores
- Se cambió el nombre de OnPositionedModifier a OnGloballyPositionedModifier y onPositioned() a onGloballyPositioned(). (I587e8, b/169083903)
Las API contentColor() y currentTextStyle() dejan de estar disponibles, y se reemplazan por AmbientContentColor y AmbientTextStyle, respectivamente. Puedes acceder al valor actual usando
.current
en la propiedad de los ambientes, como en cualquier otro ambiente. Este cambio se realizó para mantener la coherencia y evitar tener varias formas de lograr el mismo resultado. Además, se cambia el nombre de algunas propiedades de ambientes para describir mejor sus propósitos, de la siguiente manera:- ContentColorAmbient -> AmbientContentColor
- TextStyleAmbient -> AmbientTextStyle
- IndicationAmbient -> AmbientIndication
- EmphasisAmbient -> AmbientEmphasisLevels
- RippleThemeAmbient -> AmbientRippleTheme (I37b6d)
Versión 1.0.0-alpha04
1 de octubre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha04
y androidx.compose.animation:animation-core:1.0.0-alpha04
. La versión 1.0.0-alpha04 contiene estas confirmaciones.
Cambios en la API
- Se agregaron las anotaciones rootAnimationClockFactory, transitionsEnabled, blinkingCursorEnabled y textInputServiceFactory con @VisibleForTesting; se las convirtió en internas para la API y se ocultó su KDoc (I554eb, b/168308412).
Correcciones de errores
- Se actualizaron varias API de gráficos.
- Se actualizaron las API de transformación de escalamiento y rotación a fin de consumir un solo parámetro de compensación para representar la coordenada dinámica, en lugar de parámetros flotantes separados para las coordenadas x/y en DrawScope y DrawTransform.
- Se quitaron los métodos Rect.expandToInclude y Rect.join.
- Se actualizó la documentación de Radius para indicar el óvalo además del elíptico.
- Se agregó documentación para indicar que el constructor público para la clase de Radius intercalado no se debe llamar directamente, sino que se debe crear una instancia de los objetos Radius a través de sus constructores de funciones.
- Se quitaron las API de RoundRect para consultar topRight, bottomRight, bottomCenter, etc.
- Rect.shift dejó de estar disponible y se reemplazó por Rect.translate.
- Se quitaron las API de RoundRect.grow y Rect.shrink.
- Se cambió el nombre de RoundRect.outerRect a Rect.boundingRect.
- Se quitaron los métodos RoundRect.middleRect/tallMiddleRect/wideMiddleRect y Rect.isStadium.
- Se cambió el nombre de RoundRect.longestSide a RoundRect.maxDimension.
- Se cambió el nombre de RoundRect.shortestSide a RoundRect.minDimension.
- Se modificó RoundRect.center para que sea una propiedad en lugar de una función.
- Se actualizó el constructor RoundRect para consumir propiedades de Radius en lugar de parámetros individuales para valores de radio x/y.
- Se quitaron las API de tamaño que asumían que se trataba de un rectángulo con el origen en 0,0.
- Se agregó una API destructiva a Radius.
- Se migraron varias funciones de extensión de RoundRect para que sean propiedades.
- (I8f5c7, b/168762961)
- foundation.Box dejó de estar disponible. Usa foundation.layout.Box en su lugar. (Ie5950, b/167680279)
- Se cambió el nombre de Stack a Box. La función Box anterior dejará de estar disponible y se usará la nueva función Box en compose.foundation.layout. El comportamiento de la nueva función Box es apilar elementos secundarios uno encima de otro cuando existen varios, a diferencia de la anterior, cuyo comportamiento era similar al de una columna. (I94893, b/167680279)
- Los parámetros de decoración de Box dejaron de estar disponibles. Si deseas incluir decoraciones o relleno en tu cuadro, utiliza modificadores (Modifier.background, Modifier.border, Modifier.padding). (Ibae92, b/167680279)
- Evitamos las importaciones estáticas de contenido de alcances de diseño (p. ej., alignWithSiblings en RowScope). En su lugar, se debe usar la alternativa a un alcance explícito:
with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) }
. (I216be, b/166760797)
Versión 1.0.0-alpha03
16 de septiembre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha03
y androidx.compose.animation:animation-core:1.0.0-alpha03
. La versión 1.0.0-alpha03 contiene estas confirmaciones.
Correcciones de errores
- Se cambiaron de manera coherente los nombres de los usos de Gravity a Align o Alignment en las API de diseño. (I2421a, b/164077038)
Versión 1.0.0-alpha02
2 de septiembre de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha02
y androidx.compose.animation:animation-core:1.0.0-alpha02
. La versión 1.0.0-alpha02 contiene estas confirmaciones.
Cambios en la API
Se agregó
ManualFrameClock.hasAwaiters
para ver si hay algo que espera un marco de ese reloj;runWithManualClock
como un reemplazo pararunBlocking
cuando se ejecutan pruebas que necesitan un ManualFrameClock, yTestUiDispatcher.Main
, que brinda un acceso fácil al despachador de IU principal en tus pruebas.Por ejemplo:
@Test fun myTest() = runWithManualClock { clock -> // set some compose content withContext(TestUiDispatcher.Main) { clock.advanceClock(1000L) } if (clock.hasAwaiters) { println("The clock has awaiters") } else { println("The clock has no more awaiters") } }
Correcciones de errores
onPreCommit dejó de estar disponible. onCommit ahora tiene el comportamiento de onPrecommit.
OnCommit y OnActive ahora se ejecutan en el mismo fotograma Choreographer que los cambios de composición incluidos, y no al inicio del siguiente fotograma Coreographer. (I70403)
Versión 1.0.0-alpha01
26 de agosto de 2020
Lanzamiento de androidx.compose.animation:animation:1.0.0-alpha01
y androidx.compose.animation:animation-core:1.0.0-alpha01
. La versión 1.0.0-alpha01 contiene estas confirmaciones.
Versión 0.1.0-dev
Versión 0.1.0-dev17
19 de agosto de 2020
Lanzamiento de androidx.compose.animation:animation:0.1.0-dev17
y androidx.compose.animation:animation-core:0.1.0-dev17
. La versión 0.1.0-dev17 contiene estas confirmaciones.
Nuevas funciones
Cambios en la API
- Offset se convirtió en una clase intercalada. (Iaec70)
- IntOffset ahora es una clase intercalada. (Iac0bf)
- IntSize ahora es una clase intercalada. (I2bf42)
El objeto AnimatedVisibility que admite composición anima la aparición y la desaparición del contenido secundario.
Se introdujeron EnterTransition y ExitTransition para trabajar con el objeto AnimatedVisibilty que admite composición a fin de proporcionar 3 tipos diferentes de animaciones de aparición y desaparición: atenuar, deslizar y expandir/reducir el contenido. Puedes combinar estos tipos de animaciones y así lograr un diseño más personalizado. (Idda11)
PxBounds dejó de estar disponible y se reemplazó por Rect. Se actualizaron todos los usos de PxBounds con rect y se agregaron la baja y reemplazo adecuados, con anotaciones para ayudar con la migración. (I37038, b/162627058)
Correcciones de errores
- Se cambió el nombre de
PlacementScope.placeAbsolute()
aPlacementScope.place()
, y el delPlacementScope.place()
anterior aPlacementScope.placeRelative()
. Como resultado, el métodoPlacementScope.place()
ya no duplicará automáticamente la posición en contextos de derecha a izquierda. Si quieres que eso ocurra, usaPlacementScope.placeRelative()
en su lugar. (I873ac, b/162916675) - El elemento
state { ... }
que admite composición dejó de estar disponible y se reemplazó por cualquier llamada explícita aremember { mutableStateOf(...) }
por motivos de claridad. Con esto, se reduce la superficie general de la API, así como la cantidad de conceptos para la administración de estados, y se hace coincidir el patrónby mutableStateOf()
con la delegación de propiedades de clase. (Ia5727)
Versión 0.1.0-dev16
5 de agosto de 2020
Lanzamiento de androidx.compose.animation:animation:0.1.0-dev16
y androidx.compose.animation:animation-core:0.1.0-dev16
. La versión 0.1.0-dev16 contiene estas confirmaciones.
Cambios en la API
- Ahora se puede acceder mediante
Foo.VectorConverter
a los convertidores vectoriales a fin de convertir unidades integradas. P. ej.,Dp.VectorConverter
,Color.VectorConverter
,Float.VectorConverter
, etc. (I3e273) - Brinda compatibilidad con el objeto de escucha final en
Modifier.animateContentSize()
de modo que, cuando finalice la animación de cambio de tamaño, este reciba una notificación que indique la finalización y el tamaño inicial/final de la animación. (I277b2) - Nuevo modificador animateContentSize que anima el cambio de tamaño de diseño de su modificador secundario. (Ieffdc)
Se agregó
MonotonicFrameAnimationClock
, que te permite usar un MonotonicFrameClock como unAnimationClockObservable
para cerrar la brecha entre los relojes basados en las nuevas corrutinas y las API que aún usan los relojes basados en la devolución de llamada anterior.El equivalente
MonotonicFrameClock
deManualAnimationClock
ahora esManualFrameClock
. (I111c7, b/161247083)
Correcciones de errores
- Se actualizaron las API correspondientes a la compatibilidad de orientación de derecha a izquierda. Se agregó LayoutDirectionAmbient, que puede usarse para leer y cambiar la dirección del diseño. Se quitaron Modifier.rtl y Modifier.ltr. (I080b3)
- Se requiere que el tipo T se especifique de forma explícita para transitionDefinition. (I1aded)
- Se acopló el paquete foundation.shape.corner a foundation.share. (I46491, b/161887429)
- Modifier.plus dejó de estar disponible; en su lugar, usa Modifier.then. "Then" tiene un indicador de orden más fuerte, a la vez que prohíbe la escritura de
Modifier.padding().background() + anotherModifier
, lo que interrumpe la cadena y es más difícil de leer. (Iedd58, b/161529964) - Se cambió el nombre de Modifier.drawBackground a Modifier.background. (I13677)
Versión 0.1.0-dev15
22 de julio de 2020
Lanzamiento de androidx.compose.animation:animation:0.1.0-dev15
y androidx.compose.animation:animation-core:0.1.0-dev15
. La versión 0.1.0-dev15 contiene estas confirmaciones.
Actualización de dependencias
- Para usar la versión
0.1.0-dev15
de Compose, deberás actualizar tus dependencias de acuerdo con los nuevos fragmentos de código que se muestran más arriba en Cómo declarar dependencias.
Cambios en la API
- Se modificó la API de Transition para mostrar un elemento TransitionState en lugar de pasar el objeto TransitionState a los elementos secundarios. Esto hace que la API sea más coherente con las API de animate(). (I24e38)
- Se agregó el parámetro modificable para Crossfade. (I87cfe, b/159706180)
- Usa AnimationSpec en lugar de AnimationBuilder en las API de nivel superior para aclarar el concepto de especificación de animación estática.
- Mejora la DSL de transición mediante la eliminación del requisito lambda para crear AnimationSpecs, como la interpolación o la animación de resorte. En su lugar, toman parámetros de constructor en forma directa.
- A fin de facilitar el uso general de AnimationSpec, establece constructores, en lugar de depender de compiladores.
- Cambia la duración y el retraso de KeyFrames y Tween a Int. De esta manera, se eliminan las conversiones de tipos y la sobrecarga de métodos innecesarias (para admitir tanto Long como Int). (Ica0b4)
- Se reemplazó el uso del elemento IntPx con Int. Se reemplazó el objeto IntPxPosition con IntOffset. Se reemplazó el elemento IntPxSize con IntSize. (Ib7b44)
- A fin de consolidar las clases utilizadas para representar la información de tamaño, se estandarizó el uso de la clase Size en lugar de PxSize. Esto habilita las ventajas de una clase intercalada que permite empaquetar 2 valores de punto flotante para representar el ancho y la altura. (Ic0191)
- A fin de consolidar las clases utilizadas para representar la información de posicionamiento, se estandarizó el uso de la clase Offset en lugar de PxPosition. Esto habilita las ventajas de una clase intercalada que permite empaquetar 2 valores de punto flotante para representar los desplazamientos x e y. (I3ad98)
- Se reemplazó el uso de la clase Px en varias clases de Compose como parte de un gran esfuerzo de refactorización para depender solo de los tipos Dp y primitivos para los parámetros de píxeles. (I086f4)
- Se agregó compatibilidad con animate() para Dp, Px, Size, Position, Límites, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds y AnimationVector (lb7518).
- Crossfade ahora acepta el parámetro AnimationBuilder opcional para permitir la configuración de la animación. (I6d6e0)
- Se reemplazaron todos los usos anulables de Color en la API con valores no anulables y se usa Color.Unset en lugar de valor nulo. (Iabaa7)
- Se quitó la clase ValueHolder. Se reestructuraron las clases AnimatedValue y AnimatedFloat para que el campo de valor de animación sea abstracto a fin de que las subclases puedan ver la actualización del valor.
- Se agregaron clases de modelos para AnimatedValue, AnimatedFloat, etc.
- Se agregó un nuevo conjunto de API liviana de @Composable para realizar animaciones entre valores. (I79530)
- Cambios rotundos en la API de ambients: Consulta el registro y la documentación de
Ambient<T>
para obtener más detalles. (I4c7ee, b/143769776) - Nuevo modo de repetición: revertir. Este modo revierte la iteración anterior a medida que se repite la animación en RepeatableSpec o VectorizedRepeatableSpec. (Ibe0f5)
- Se agregaron las siguientes API a ManualAnimationClock:
hasObservers: Boolean
ydispatchOnSubscribe: Boolean
de parámetro de constructor. (Iaa134) - Se agregaron API para obtener límites mínimos/máximos en AnimatedFloat. (Icd9cc)
Correcciones de errores
- Se cambió el nombre de
runOnIdleCompose
arunOnIdle
. (I83607) - Se cambió el nombre de varias API de prueba con el fin de que sean más intuitivas. Se cambió el nombre de todas las API findXYZ por el de onNodeXYZ. Se cambió el nombre de todas las APIs doXYZ por el de performXYZ (I7f164).
- Se introdujeron las APIs de Animation sin estado de bajo nivel (I63bf7).
- La función Recompose que admite composición ya no es una abstracción útil. La mayor parte de la recomposición debería ocurrir como resultado de las asignaciones de MutableState. Para todo lo demás, se recomienda usar la función
invalidate
para activar una recomposición del alcance actual (Ifc992). - Se reemplazó el uso de la clase Px en varias clases de Compose como parte de un gran esfuerzo de refactorización a fin de depender solo de los tipos Dp y primitivos para los parámetros de píxeles. Se borró por completo la clase Px (I3ff33).
- Se reemplazó el uso de la clase Px en varias clases de Compose como parte de un gran esfuerzo de refactorización para depender solo de los tipos Dp y primitivos para los parámetros de píxeles (Id3434).
- Crossfade ahora puede iniciarse con un valor nulo (Iad6a4, b/155947711).
- Se reemplazó el uso de la clase Px en varias clases de Compose como parte de un gran esfuerzo de refactorización para depender solo de los tipos Dp y primitivos para los parámetros de píxeles (I19d02).
- Se consolidaron las implementaciones de CanvasScope, por lo que ahora solo quedaron los elementos DrawScope y ContentDrawScope. Se cambió el nombre del objeto CanvasScope a DrawScope. Se actualizó DrawScope para implementar la interfaz de Density y proporcionar LayoutDirection. Se borró la subclase DrawScope en ContentDrawScope. Se actualizaron Painter y PainterModifier de modo que ya no mantengan una propiedad RTL, ya que DrawScope la proporciona sin hacerlo manualmente (I1798e).
- Se actualizaron las API de Compose de nivel superior que exponen un lienzo para mostrar el objeto CanvasScope en su lugar. Esto elimina la necesidad de que los consumidores mantengan sus propios objetos Paint. Para los usuarios que aún necesitan acceso a Canvas, pueden usar el método de extensión drawCanvas que proporciona una devolución de llamada a fin de emitir comandos de dibujo con el Canvas subyacente (I80afd).
- Se agregaron los parámetros verticalGravity y horizontalGravity a los elementos Row y Column, respectivamente (I7dc5a)
- Se cambió el nombre del módulo ui-text a ui-text-core (I57dec).
- Se mejoró la API de DrawModifier:
- Se creó el alcance del receptor para draw() ContentDrawScope.
- Se quitaron todos los parámetros de draw().
- El objeto DrawScope tiene la misma interfaz que el elemento CanvasScope anterior.
- ContentDrawScope tiene el método drawContent() (Ibaced, b/152919067).
- Los objetos
runOnIdleCompose
yrunOnUiThread
ahora son funciones globales en lugar de ser métodos en ComposeTestRule (Icbe8f). - Los operadores delegados de la propiedad [Mutable]State se movieron a extensiones a fin de admitir optimizaciones delegadas de propiedad de Kotlin 1.4. Los llamadres deben agregar importaciones para continuar usando
by state { ... }
oby mutableStateOf(...)
. (I5312c). - El objeto ColoredRect dejó de estar disponible. Usa
Box(Modifier.preferredSize(width, height).drawBackground(color))
en su lugar. (I499fa, b/152753731). - Se reemplazaron el modificador y el operador por funciones de extensión de fábrica (I225e4).
- El elemento Center que admite composición dejó de estar disponible. Debe reemplazarse con el modificador LayoutSize.Fill + LayoutAlign.Center o con una de las funciones que admiten composición Box o Stack con los modificadores adecuados aplicados (Idf5e0).
- Se cambió el nombre de LayoutFlexible a LayoutWeight. Se cambió el nombre del parámetro estricto para rellenar. (If4738).
- Se reemplazó la función de componibilidad Opacity por el modificador drawOpacity (I5fb62).
- Las pruebas que usan AndroidComposeTestRule ahora proporcionan un reloj de animación en la raíz de la composición que se puede pausar, reanudar y avanzar manualmente (Id54c5).
- Se agregó compatibilidad con lectura de derecha a izquierda en el modificador LayoutPadding (I9e8da).
- Se combinaron Density y DensityScope en una sola interfaz. En lugar de ambientDensity(), ahora puedes usar DensityAmbient.current. En lugar de withDensity(density), usa with(density) (I11cb1).
- Se agregaron métodos de copia a varios tipos de clases intercaladas, entre otras:
- Desplazamiento
- Tamaño
- Radio
- Movimiento
- TransformOrigin
- El método del objeto complementario Size.copy dejó de estar disponible para el método de copia de instancias (Ife290, b/159905651).
- Se trasladó el objeto androidx.compose.ViewComposer al elemento androidx.ui.node.UiComposer androidx.compose. Se quitó el parámetro Emittable. Era redundante con el objeto ComponentNode. Se quitó el elemento androidx.compose.ViewAdapters. Ya no es un caso práctico admitido.
Compose.composeInto quedó obsoleto. En su lugar, usa los elementos
setContent
osetViewContent
. El componente Compose.disposeComposition dejó de estar disponible. En su lugar, usa el métododispose
en elComposition
que muestrasetContent
. Se movió androidx.compose.Compose.subcomposeInto a androidx.ui.core.subcomposeInto. Se cambió el nombre de ComponentNode#emitInsertAt a ComponentNode#insertAt, el de ComponentNode#emitRemoveAt a ComponentNode#removeAt y el de ComponentNode#emitMode a ComponentNode#move. (Idef00)