Das folgende Diagramm hilft Ihnen bei der Entscheidung, welche API Sie für die Implementierung Ihrer Animation verwenden sollten.
Verwenden Sie den folgenden Entscheidungsbaum, um die am besten geeignete Animation API für Ihren Anwendungsfall auszuwählen:
- Basiert Ihre Animation auf Grafiken (z. B. SVGs oder Bildern)?
- Ja: Werden einfache SVGs verwendet (z. B. ein Symbol mit Mikroanimationen)?
- Ja:
AnimatedVectorDrawable. - Nein: Animations-Framework eines Drittanbieters, z. B.
Lottie.
- Ja:
- Nein: Muss die Animation unendlich wiederholt werden?
- Ja:
rememberInfiniteTransition. - Nein: Animieren Sie ein Layout?
- Ja: Wechseln Sie zwischen Composables mit unterschiedlichen Inhalten?
- Ja: Verwenden Sie Navigation-Compose?
- Ja:
composable()mit festgelegtenenterTransitionundexitTransition. - Nein:
AnimatedContent,CrossfadeoderPager.
- Ja:
- Nein: Animieren Sie das Erscheinen oder Verschwinden von Inhalten?
- Ja:
AnimatedVisibilityoderanimateFloatAsStatemitModifier.alpha(). - Nein: Animieren Sie eine Größenänderung?
- Ja:
Modifier.animateContentSize. - Nein: Animieren Sie eine andere Layouteigenschaft (z. B. Offset oder Padding)?
- Ja: Weitere Informationen finden Sie unter „Sind die Properties vollständig voneinander unabhängig?“.
- Nein: Animieren Sie Listenelemente?
- Ja:
animateItem().
- Ja:
- Ja:
- Ja:
- Ja: Verwenden Sie Navigation-Compose?
- Nein: Animieren Sie mehrere Eigenschaften?
- Ja: Sind die Properties vollständig voneinander unabhängig?
- Ja:
animate*AsState. Verwenden Sie für TextTextMotion.Animated. - Nein: Müssen sie zur selben Zeit beginnen?
- Ja:
updateTransitionmitAnimatedVisibility,animateFloat,animateIntusw. - Nein:
AnimatablemitanimateTo, aufgerufen mit unterschiedlichen Timings mithilfe von Suspend-Funktionen.
- Ja:
- Ja:
- Nein: Hat die Animation vordefinierte Zielwerte?
- Ja:
animate*AsState. Verwenden Sie für TextTextMotion.Animated. - Nein: Ist die Animation gestengesteuert und die einzige verlässliche Quelle?
- Ja:
AnimatablemitanimateTo/snapTo. - Nein: Ist es eine One-Shot-Animation ohne Zustandsverwaltung?
- Ja:
AnimationStateoderanimate. - Nein: Antwort nicht hier? Feature Request stellen
- Ja:
- Ja:
- Ja:
- Ja: Sind die Properties vollständig voneinander unabhängig?
- Ja: Wechseln Sie zwischen Composables mit unterschiedlichen Inhalten?
- Ja:
- Ja: Werden einfache SVGs verwendet (z. B. ein Symbol mit Mikroanimationen)?
PDF-Version des Diagramms herunterladen