El siguiente diagrama te ayuda a decidir qué API utilizar para implementar tu animación.

Usa el siguiente árbol de decisión para elegir la API de animación más adecuada para tu caso de uso:
- ¿Tu animación se basa en el arte (es decir, SVG o imágenes)?
- Sí: ¿Usa SVG simples (es decir, un ícono con microanimaciones)?
- Sí:
AnimatedVectorDrawable
. - No: Framework de animación de terceros, por ejemplo,
Lottie
.
- Sí:
- No: ¿La animación debe repetirse de forma infinita?
- Sí:
rememberInfiniteTransition
. - No: ¿Estás animando un diseño?
- Sí: ¿Estás cambiando entre elementos componibles con contenido diferente?
- Sí: ¿Estás usando Navigation-Compose?
- Sí:
composable()
conenterTransition
yexitTransition
configurados - No:
AnimatedContent
,Crossfade
oPager
.
- Sí:
- No: ¿Estás animando la aparición o desaparición de contenido?
- Sí:
AnimatedVisibility
oanimateFloatAsState
conModifier.alpha()
. - No: ¿Estás animando un cambio de tamaño?
- Sí:
Modifier.animateContentSize
. - No: ¿Estás animando otra propiedad de diseño (por ejemplo, desplazamiento o padding)?
- Sí: Consulta "¿Las propiedades son completamente independientes entre sí?".
- No: ¿Animas elementos de lista?
- Sí:
- Sí:
- Sí: ¿Estás usando Navigation-Compose?
- No: ¿Estás animando varias propiedades?
- Sí: ¿Las propiedades son completamente independientes entre sí?
- Sí:
animate*AsState
. Para texto, usaTextMotion.Animated
. - No: ¿Deben comenzar al mismo tiempo?
- Sí:
updateTransition
conAnimatedVisibility
,animateFloat
,animateInt
, etcétera. - No:
Animatable
conanimateTo
, llamado con diferentes tiempos usando funciones de suspensión.
- Sí:
- Sí:
- No: ¿La animación tiene valores objetivo predefinidos?
- Sí:
animate*AsState
. Para texto, usaTextMotion.Animated
. - No: ¿La animación se controla con gestos y es la única fuente de confianza?
- Sí:
Animatable
conanimateTo
osnapTo
- No: ¿Es una animación única 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í: ¿Estás cambiando entre elementos componibles con contenido diferente?
- Sí:
- Sí: ¿Usa SVG simples (es decir, un ícono con microanimaciones)?
Descarga la versión en PDF del diagrama.