Na diagramie poniżej możesz zobaczyć, którego interfejsu API użyć do implementacji animacji.

Aby wybrać interfejs API animacji najlepiej pasujący do Twojego przypadku użycia, użyj poniższego schematu decyzyjnego:
- Czy Twoja animacja jest oparta na grafikach (czyli plikach SVG lub obrazach)?
- Tak: czy używa prostych plików SVG (czyli ikony z mikroanimowanymi elementami)?
- Tak:
AnimatedVectorDrawable
. - Nie: zewnętrzny framework animacji, np.
Lottie
.
- Tak:
- Nie: czy animacja ma być powtarzana w nieskończoność?
- Tak:
rememberInfiniteTransition
. - Nie: Czy animujesz układ?
- Tak: czy przełączasz się między komponentami z różnymi treściami?
- Tak: Czy korzystasz z funkcji Nawigacja – Compose?
- Tak:
composable()
z ustawionymi parametramienterTransition
iexitTransition
. - Nie:
AnimatedContent
,Crossfade
aniPager
.
- Tak:
- Nie: czy animujesz pojawianie się lub znikanie treści?
- Tak:
AnimatedVisibility
lubanimateFloatAsState
zModifier.alpha()
. - Nie: Czy animujesz zmianę rozmiaru?
- Tak:
Modifier.animateContentSize
. - Nie: czy animujesz inną właściwość układu (np. przesunięcie lub wypełnienie)?
- Tak: patrz odpowiedź na pytanie „Czy usługi są od siebie całkowicie niezależne?”.
- Nie: Czy animujesz elementy listy?
- Tak:
animateItemPlacement()
.
- Tak:
- Tak:
- Tak:
- Tak: Czy korzystasz z funkcji Nawigacja – Compose?
- Nie: Czy animujesz wiele właściwości?
- Tak: czy właściwości są od siebie całkowicie niezależne?
- Tak:
animate*AsState
. W przypadku tekstu użyjTextMotion.Animated
. - Nie: Czy muszą się rozpocząć w tym samym czasie?
- Tak:
updateTransition
zAnimatedVisibility
,animateFloat
,animateInt
itd. - Nie:
Animatable
zanimateTo
wywoływanym w różnych momentach za pomocą funkcji zawieszania.
- Tak:
- Tak:
- Nie: czy animacja ma wstępnie zdefiniowane wartości docelowe?
- Tak:
animate*AsState
. W przypadku tekstu użyjTextMotion.Animated
. - Nie: czy animacja jest sterowana gestami i czy jest to jedyne źródło wiarygodnych informacji?
- Tak:
Animatable
zanimateTo
/snapTo
. - Nie: czy jest to animacja jednosekundowa bez zarządzania stanem?
- Tak:
AnimationState
lubanimate
. - Nie: odpowiedź nie znajduje się tutaj Prześlij prośbę o dodanie funkcji
- Tak:
- Tak:
- Tak:
- Tak: czy właściwości są od siebie całkowicie niezależne?
- Tak: czy przełączasz się między komponentami z różnymi treściami?
- Tak:
- Tak: czy używa prostych plików SVG (czyli ikony z mikroanimowanymi elementami)?
Pobierz diagram w formacie PDF.