Le diagramme ci-dessous vous aide à décider quelle API utiliser pour implémenter votre animation.
Suivez les questions ci-dessous sur l'arbre de décision pour choisir l'API d'animation la plus adaptée à votre cas d'utilisation:
- Mon animation ressemble-t-elle davantage à de l'art, car elle comporte de nombreux éléments visuels (fichiers SVG ou images, par exemple) ?
- Oui: est-il compatible avec de simples fichiers SVG (par exemple, une icône avec des micro-animations) ?
- Oui:
AnimatedVectorDrawable
- Non: framework d'animation tiers (
Lottie
)
- Oui:
- Non: Doit-il être répété indéfiniment ?
- Oui:
rememberInfiniteTransition
- Non: S'agit-il d'une animation de mise en page ?
- Oui: passer d'un composable à un autre dont le contenu est différent ?
- Oui: avec navigation-compose ?
- Oui:
composable()
avecenterTransition
etexitTransition
définis - Non:
AnimatedContent
,Crossfade
ouPager
- Oui:
- Non: Animer l'apparition / disparition ?
- Oui:
AnimatedVisibility
ouanimateFloatAsState
avecModifier.alpha()
- Non: Taille de l'animation ?
- Oui:
Modifier.animateContentSize
- Non: autre propriété de mise en page (décalage, marge intérieure, etc.)
- Oui: consultez la section "Les propriétés sont-elles complètement indépendantes les unes des autres ?"
- Non: Animations des éléments de liste ?
- Oui:
animateItemPlacement()
(la réorganisation et la suppression seront bientôt disponibles)
- Oui:
- Oui:
- Oui:
- Oui: avec navigation-compose ?
- Non: Avez-vous besoin d'animer plusieurs propriétés ?
- Oui: les propriétés sont-elles totalement indépendantes les unes des autres ?
- Oui:
animate*AsState
pour le texte, utiliserTextMotion.Animated
- Non: Commencer en même temps ?
- Oui :
updateTransition
avecAnimatedVisibility
,animateFloat
,animateInt
, etc. - Non:
Animatable
avecanimateTo
appelé avec des codes temporels différents (à l'aide de fonctions de suspension)
- Oui :
- Oui:
- Non: l'animation a-t-elle un ensemble de valeurs cibles prédéfinies ?
- Oui:
animate*AsState
, pour le texte, utiliserTextMotion.Animated
- Non: Animation par gestes ? Votre animation est-elle la seule source de référence ?
- Oui:
Animatable
avecanimateTo
/snapTo
- Non: Animation en une seule prise sans gestion de l'état ?
- Oui:
AnimationState
ouanimate
- Non: la réponse n'est pas là ? Envoyer une demande de fonctionnalité
- Oui:
- Oui:
- Oui:
- Oui: les propriétés sont-elles totalement indépendantes les unes des autres ?
- Oui: passer d'un composable à un autre dont le contenu est différent ?
- Oui:
- Oui: est-il compatible avec de simples fichiers SVG (par exemple, une icône avec des micro-animations) ?
Téléchargez la version PDF du diagramme.