Le diagramme ci-dessous vous aide à décider quelle API utiliser pour implémenter votre animation.
Suivez les questions de l'arbre de décision ci-dessous pour choisir l'API d'animation la plus adaptée à votre cas d'utilisation:
- Mon animation ressemble-t-elle davantage à une œuvre d'art, composée de nombreux éléments visuels (par exemple, des SVG ou des images) ?
- Oui: l'application contient-elle des SVG simples, c'est-à-dire une icône avec des micro-animations ?
- Oui:
AnimatedVectorDrawable
- Non: framework d'animation tiers, par exemple
Lottie
- Oui:
- Non: doit-il se répéter 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: animation de l'apparition / de la disparition ?
- Oui:
AnimatedVisibility
ouanimateFloatAsState
avecModifier.alpha()
- Non: Animation de la taille ?
- Oui:
Modifier.animateContentSize
- Non: autre propriété de mise en page (par exemple, décalage, marge intérieure, etc.)
- Oui: consultez la question "Les propriétés sont-elles complètement indépendantes les unes des autres ?"
- Non: Animer des éléments de liste ?
- Oui:
animateItemPlacement()
(réorganiser et supprimer 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 complètement indépendantes les unes des autres ?
- Oui:
animate*AsState
. Pour le texte, utilisezTextMotion.Animated
. - Non: commencer en même temps ?
- Oui :
updateTransition
avecAnimatedVisibility
,animateFloat
,animateInt
, etc. - Non:
Animatable
avecanimateTo
appelé avec des délais différents (à l'aide de fonctions de suspension)
- Oui :
- Oui:
- Non: l'animation comporte-t-elle un ensemble de valeurs cibles prédéfinies ?
- Oui:
animate*AsState
. Pour le texte, utilisezTextMotion.Animated
. - Non: animation basée sur les gestes ? Votre animation est-elle la seule source fiable ?
- Oui:
Animatable
avecanimateTo
/snapTo
- Non: animation ponctuelle sans gestion de l'état ?
- Oui:
AnimationState
ouanimate
- Non: la réponse n'est pas ici ? Envoyer une demande de fonctionnalité
- Oui:
- Oui:
- Oui:
- Oui: les propriétés sont-elles complètement indépendantes les unes des autres ?
- Oui: passer d'un composable à un autre dont le contenu est différent
- Oui:
- Oui: l'application contient-elle des SVG simples, c'est-à-dire une icône avec des micro-animations ?
Téléchargez la version PDF du diagramme.