El siguiente diagrama te ayuda a decidir qué API utilizar para implementar tu animación.
Sigue las preguntas del árbol de decisión que aparecen a continuación para elegir qué API de Animation es la más adecuada para tu caso de uso:
- ¿Mi animación se parece más al arte, que consta de muchos elementos visuales? Es decir, SVG o imágenes.
- Sí. ¿Tiene SVG simples?, p. ej., un ícono con microanimaciones.
- Sí:
AnimatedVectorDrawable
- No: Framework de animación de terceros, p.ej.,
Lottie
- Sí:
- No, ¿tiene que repetirse para siempre?
- Sí:
rememberInfiniteTransition
- No, ¿es una animación de diseño?
- Sí: ¿Deseas cambiar entre varios elementos componibles que tienen contenido diferente?
- Sí, ¿con navigation-compose?
- Sí:
composable()
conenterTransition
yexitTransition
configurados - No:
AnimatedContent
,Crossfade
oPager
- Sí:
- No: ¿Apariciones o desaparición animadas?
- Sí:
AnimatedVisibility
oanimateFloatAsState
conModifier.alpha()
- No, ¿tamaño de animación?
- Sí:
Modifier.animateContentSize
- No: ¿Otra propiedad de diseño, es decir, desplazamiento, relleno, etcétera?
- Sí: Consulta "¿Las propiedades son completamente independientes entre sí?"
- No, ¿animaciones de elementos de lista?
- Sí:
animateItemPlacement()
(volver a pedir y borrar próximamente)
- Sí:
- Sí:
- Sí:
- Sí, ¿con navigation-compose?
- No. ¿Es necesario animar varias propiedades?
- Sí: ¿Las propiedades son completamente independientes entre sí?
- Sí:
animate*AsState
, para Texto, usaTextMotion.Animated
. - No, ¿comenzar al mismo tiempo?
- Sí: Sí:
updateTransition
conAnimatedVisibility
,animateFloat
,animateInt
, etcétera - No: Se llama a
Animatable
conanimateTo
con diferentes tiempos (con funciones de suspensión).
- Sí: Sí:
- Sí:
- No: ¿La animación tiene un conjunto de valores objetivo predefinidos?
- Sí:
animate*AsState
, para Texto, usaTextMotion.Animated
. - No, ¿animación basada en gestos? ¿Tu animación es la única fuente de confianza?
- Sí:
Animatable
conanimateTo
/snapTo
- No: ¿Animación de una sola toma sin administración de estado?
- Sí:
AnimationState
oanimate
- No: ¿La respuesta no está aquí? Presenta una solicitud de función
- Sí:
- Sí:
- Sí:
- Sí: ¿Las propiedades son completamente independientes entre sí?
- Sí: ¿Deseas cambiar entre varios elementos componibles que tienen contenido diferente?
- Sí:
- Sí. ¿Tiene SVG simples?, p. ej., un ícono con microanimaciones.
Descarga la versión en PDF del diagrama.