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 à des œuvres d'art, composée de nombreux éléments visuels (SVG ou images, par exemple) ?
- Oui: Existe-t-il des fichiers SVG simples ? Par exemple, une icône avec des micro-animations est-elle disponible ?
- Oui:
AnimatedVectorDrawable
- Non: framework d'animation tiers (
Lottie
, par exemple)
- Oui:
- Non: doit-il se répéter indéfiniment ?
- Oui:
rememberInfiniteTransition
- Non: S'agit-il d'une animation de mise en page ?
- Oui: vous passez 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: la taille de l'animation ?
- Oui:
Modifier.animateContentSize
- Non: autre propriété de mise en page (décalage, marge intérieure, etc.)
- Oui. Reportez-vous à la section "Les propriétés sont-elles totalement indépendantes les unes des autres ?"
- Non: Animation des éléments de liste ?
- Oui:
animateItemPlacement()
(nouvelle commande et suppression 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: oui:
updateTransition
avecAnimatedVisibility
,animateFloat
,animateInt
, etc. - Non:
Animatable
avecanimateTo
appelé avec des codes temporels différents (à l'aide de fonctions de suspension)
- Oui: 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 par gestes ? Votre animation est la seule source fiable ?
- Oui:
Animatable
avecanimateTo
/snapTo
- Non: Animation unique sans gestion de l'état ?
- Oui:
AnimationState
ouanimate
- Non: vous n'avez pas trouvé la réponse 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: vous passez d'un composable à un autre dont le contenu est différent ?
- Oui:
- Oui: Existe-t-il des fichiers SVG simples ? Par exemple, une icône avec des micro-animations est-elle disponible ?
Téléchargez la version PDF du diagramme.