Poniższy diagram pomoże Ci zdecydować, którego interfejsu API użyć do zaimplementowania animacji.
Aby wybrać interfejs API animacji odpowiedni do Twojego przypadku użycia, postępuj zgodnie z pytaniami podanymi poniżej w ramach schematu decyzyjnego:
- Czy moja animacja jest bardziej podobna do grafiki, ponieważ składa się z wielu elementów wizualnych?
- Tak: czy film zawiera proste pliki SVG, na przykład ikonę z mikroanimacjami.
- Tak:
AnimatedVectorDrawable
- Nie: platforma animacji innej firmy, np.
Lottie
- Tak:
- Nie. Czy wydarzenie musi się powtarzać w nieskończoność?
- Tak:
rememberInfiniteTransition
- Nie: czy to jest animacja układu?
- Tak: przechodzisz między różnymi elementami kompozycyjnymi, które mają różną treść?
- Tak: za pomocą nawigacji i tworzenia wiadomości?
- Tak:
composable()
z ustawionymi parametramienterTransition
iexitTransition
- Nie:
AnimatedContent
,Crossfade
lubPager
- Tak:
- Nie: Animowanie wyglądu lub zniknięcia?
- Tak:
AnimatedVisibility
lubanimateFloatAsState
przy użyciu:Modifier.alpha()
- Nie: animujesz rozmiar?
- Tak:
Modifier.animateContentSize
- Nie: inna właściwość układu, np. przesunięcie, dopełnienie itp.
- Tak: zapoznaj się z sekcją „Czy obiekty są całkowicie niezależne od siebie?”.
- Nie: animacje elementów listy?
- Tak:
animateItemPlacement()
(wkrótce udostępnimy możliwość zmiany kolejności i usuwania)
- Tak:
- Tak:
- Tak:
- Tak: za pomocą nawigacji i tworzenia wiadomości?
- Nie. Czy chcesz animować kilka usług?
- Tak: czy usługi są całkowicie niezależne od siebie?
- Tak:
animate*AsState
, w przypadku tekstu użyjTextMotion.Animated
- Nie: chcesz zacząć od razu?
- Tak: Tak:
updateTransition
z:AnimatedVisibility
,animateFloat
,animateInt
itp. - Nie: funkcja
Animatable
z parametremanimateTo
została wywołana z różnymi czasami (przy użyciu funkcji zawieszania)
- Tak: Tak:
- Tak:
- Nie: czy animacja ma zestaw wstępnie zdefiniowanych wartości docelowych?
- Tak:
animate*AsState
, w przypadku tekstu użyjTextMotion.Animated
- Nie: Animacja oparta na gestach? Twoja animacja jest jedynym źródłem wiarygodnych informacji?
- Tak:
Animatable
z:animateTo
/snapTo
- Nie: jedna animacja bez zarządzania stanem?
- Tak:
AnimationState
lubanimate
- Nie: Brak odpowiedzi? Przesyłanie prośby o dodanie funkcji
- Tak:
- Tak:
- Tak:
- Tak: czy usługi są całkowicie niezależne od siebie?
- Tak: przechodzisz między różnymi elementami kompozycyjnymi, które mają różną treść?
- Tak:
- Tak: czy film zawiera proste pliki SVG, na przykład ikonę z mikroanimacjami.
Pobierz schemat w wersji PDF.