El siguiente diagrama te ayuda a decidir qué API utilizar para implementar tu animación.
Sigue las preguntas del árbol de decisión que se indican a continuación para elegir la API de animación más adecuada para tu caso de uso:
- ¿Mi animación es más como arte, con muchos elementos visuales, es decir, SVG o imágenes?
- Sí: ¿Tiene SVG simples? Es decir, un ícono con microanimaciones.
- Sí:
AnimatedVectorDrawable
- No: Framework de animación de terceros, es decir,
Lottie
- Sí:
- No: ¿Se debe repetir para siempre?
- Sí:
rememberInfiniteTransition
- No: ¿Es una animación de diseño?
- Sí: ¿Quieres cambiar entre varios elementos componibles que tienen contenido diferente?
- Sí: ¿Con navigation-compose?
- Sí:
composable()
conenterTransition
yexitTransition
configurados - No:
AnimatedContent
,Crossfade
oPager
- Sí:
- No: ¿Anima la aparición o desaparición?
- Sí:
AnimatedVisibility
oanimateFloatAsState
conModifier.alpha()
- No: ¿Animar el tamaño?
- Sí:
Modifier.animateContentSize
- No: ¿Otra propiedad de diseño? p. ej., desplazamiento, padding, etc.
- Sí: Consulta "¿Las propiedades son completamente independientes entre sí?"
- No: ¿Animaciones de elementos de lista?
- Sí:
animateItemPlacement()
(próximamente se podrán reordenar y borrar)
- Sí:
- Sí:
- Sí:
- Sí: ¿Con navigation-compose?
- No: ¿Necesitas 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:
Animatable
conanimateTo
llamado 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 información?
- Sí:
Animatable
conanimateTo
/snapTo
- No: ¿Animación de una sola vez sin administración de estado?
- Sí:
AnimationState
oanimate
- No: ¿La respuesta no está aquí? Envía una solicitud de función
- Sí:
- Sí:
- Sí:
- Sí: ¿Las propiedades son completamente independientes entre sí?
- Sí: ¿Quieres cambiar entre varios elementos componibles que tienen contenido diferente?
- Sí:
- Sí: ¿Tiene SVG simples? Es decir, un ícono con microanimaciones.
Descarga la versión en PDF del diagrama.