Il diagramma seguente ti aiuta a decidere quale API utilizzare per implementare l'animazione.
Segui le domande sulla struttura decisionale di seguito per scegliere l'API di animazione più appropriata per il tuo caso d'uso:
- La mia animazione è più simile a quella artistica, composta da molti elementi visivi? Ad esempio SVG o immagini.
- Sì: contiene SVG semplici, ad esempio un'icona con micro-animazioni.
- Sì:
AnimatedVectorDrawable
- No: framework di animazione di terze parti, ad esempio
Lottie
- Sì:
- No: deve essere ripetuto all'infinito?
- Sì:
rememberInfiniteTransition
- No: è un'animazione di layout?
- Sì: passi da un elemento componibile all'altro con contenuti diversi?
- Sì: con la scrittura della navigazione?
- Sì:
composable()
conenterTransition
eexitTransition
impostati - No:
AnimatedContent
,Crossfade
oPager
- Sì:
- No: apparizione / scomparsa dell'animazione?
- Sì:
AnimatedVisibility
oanimateFloatAsState
conModifier.alpha()
- No: dimensioni dell'animazione?
- Sì:
Modifier.animateContentSize
- No: altra proprietà del layout, ad esempio offset, spaziatura interna e così via.
- Sì: consulta la sezione "Le proprietà sono completamente indipendenti l'una dall'altra?"
- No. Animazioni delle voci dell'elenco?
- Sì:
animateItemPlacement()
(riordina ed eliminalo a breve)
- Sì:
- Sì:
- Sì:
- Sì: con la scrittura della navigazione?
- No: hai bisogno di animare più proprietà?
- Sì: le proprietà sono completamente indipendenti l'una dall'altra?
- Sì:
animate*AsState
, per gli annunci di testo utilizzaTextMotion.Animated
- No: iniziare alla stessa ora?
- Sì: sì:
updateTransition
conAnimatedVisibility
,animateFloat
,animateInt
ecc. - No:
Animatable
conanimateTo
chiamata con tempistiche diverse (con le funzioni di sospensione)
- Sì: sì:
- Sì:
- No: l'animazione contiene un insieme di valori target predefiniti?
- Sì:
animate*AsState
, per gli annunci di testo, utilizzaTextMotion.Animated
- No: animazione basata su gesti? L'animazione è l'unica fonte attendibile?
- Sì:
Animatable
conanimateTo
/snapTo
- No: un'animazione con una sola ripresa senza gestione dello stato?
- Sì:
AnimationState
oanimate
- No: la risposta non è qui? Invia una richiesta di funzionalità
- Sì:
- Sì:
- Sì:
- Sì: le proprietà sono completamente indipendenti l'una dall'altra?
- Sì: passi da un elemento componibile all'altro con contenuti diversi?
- Sì:
- Sì: contiene SVG semplici, ad esempio un'icona con micro-animazioni.
Scarica la versione PDF del diagramma.