Il diagramma seguente ti aiuta a decidere quale API utilizzare per implementare l'animazione.
Segui le domande dell'albero decisionale riportate di seguito per scegliere l'API di animazione più adatta al tuo caso d'uso:
- La mia animazione è più simile a un'opera d'arte, composta da molti elementi visivi, ad esempio SVG o immagini?
- Sì: sono presenti SVG semplici? ad es. un'icona con micro animazioni
- Sì:
AnimatedVectorDrawable
- No: framework di animazione di terze parti, ad esempio
Lottie
- Sì:
- No: deve ripetersi all'infinito?
- Sì:
rememberInfiniteTransition
- No: si tratta di un'animazione del layout?
- Sì: passaggio da un composable all'altro con contenuti diversi?
- Sì: con navigation-compose?
- Sì:
composable()
conenterTransition
eexitTransition
impostati - No:
AnimatedContent
,Crossfade
oPager
- Sì:
- No: animazione di apparizione / sparizione?
- Sì:
AnimatedVisibility
oanimateFloatAsState
conModifier.alpha()
- No: dimensioni animazione?
- Sì:
Modifier.animateContentSize
- No: altra proprietà di layout? ad es. offset, padding e così via
- Sì: consulta la sezione "Le proprietà sono completamente indipendenti l'una dall'altra?"
- No: animazioni degli elementi dell'elenco?
- Sì:
animateItemPlacement()
(riordinamento ed eliminazione disponibili a breve)
- Sì:
- Sì:
- Sì:
- Sì: con navigation-compose?
- No: devi animare più proprietà?
- Sì: le proprietà sono completamente indipendenti l'una dall'altra?
- Sì:
animate*AsState
, per il testo, utilizzaTextMotion.Animated
- No: vuoi iniziare contemporaneamente?
- Sì:
updateTransition
conAnimatedVisibility
,animateFloat
,animateInt
e così via - No:
Animatable
conanimateTo
chiamato con tempistiche diverse (utilizzando le funzioni di sospensione)
- Sì:
- Sì:
- No: l'animazione ha un insieme di valori target predefiniti?
- Sì:
animate*AsState
, per il testo, utilizzaTextMotion.Animated
- No: animazione basata sui gesti? L'animazione è l'unica fonte attendibile?
- Sì:
Animatable
conanimateTo
/snapTo
- No: animazione una tantum 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ì: passaggio da un composable all'altro con contenuti diversi?
- Sì:
- Sì: sono presenti SVG semplici? ad es. un'icona con micro animazioni
Scarica la versione PDF del diagramma.