Diagram poniżej pomoże Ci zdecydować, którego interfejsu API użyć do implementacji animacji.
Aby wybrać interfejs API animacji, który najlepiej pasuje do Twojego zastosowania, odpowiedz na poniższe pytania w ramach drzewa decyzyjnego:
- Czy Twoja animacja jest bardziej dziełem sztuki, złożonym z wielu elementów wizualnych, np. plików SVG lub obrazów?
- Tak: czy zawiera proste pliki SVG, np. ikonę z mikroanimacjami?
- Tak:
AnimatedVectorDrawable
- Nie: platforma animacji innej firmy, np.
Lottie
- Tak:
- Nie: czy musi się powtarzać w nieskończoność?
- Tak:
rememberInfiniteTransition
- Nie: Czy to jest animacja układu?
- Tak: przełączanie się między wieloma komponentami, które mają różne treści?
- Tak: z użyciem funkcji nawigacji-tworzenia?
- Tak:
composable()
z ustawionymi wartościamienterTransition
iexitTransition
- Nie:
AnimatedContent
,Crossfade
lubPager
- Tak:
- Nie: animacja pojawiania się i znikania?
- Tak:
AnimatedVisibility
lubanimateFloatAsState
zModifier.alpha()
- Nie: animujesz rozmiar?
- Tak:
Modifier.animateContentSize
- Nie: inna właściwość układu, tj. przesunięcie, dopełnienie itp.
- Tak: zapoznaj się z sekcją „Czy właściwości są od siebie całkowicie niezależne?”
- Nie: animacje elementów listy?
- Tak:
animateItemPlacement()
(wkrótce udostępnimy możliwość zmiany kolejności i usuwania).
- Tak:
- Tak:
- Tak:
- Tak: z użyciem funkcji nawigacji-tworzenia?
- Nie: Czy chcesz animować wiele obiektów?
- Tak: czy właściwości są od siebie całkowicie niezależne?
- Tak:
animate*AsState
, w przypadku tekstu użyjTextMotion.Animated
. - Nie: Rozpocznij w tym samym czasie?
- Tak:
updateTransition
zAnimatedVisibility
,animateFloat
,animateInt
itp. - Nie:
Animatable
zanimateTo
wywoływanym w różnych momentach (za pomocą funkcji zawieszania).
- Tak:
- Tak:
- Nie: Czy animacja ma zestaw wstępnie zdefiniowanych wartości docelowych?
- Tak:
animate*AsState
, jako tekst użyjTextMotion.Animated
- Nie: animacja sterowana gestami? Twoja animacja jest jedynym wiarygodnym źródłem informacji?
- Tak:
Animatable
zanimateTo
/snapTo
- Nie: animacja jednego ujęcia bez zarządzania stanem?
- Tak:
AnimationState
lubanimate
. - Nie: odpowiedź nie znajduje się tutaj Przesyłanie prośby o dodanie funkcji
- Tak:
- Tak:
- Tak:
- Tak: czy właściwości są od siebie całkowicie niezależne?
- Tak: przełączanie się między wieloma komponentami, które mają różne treści?
- Tak:
- Tak: czy zawiera proste pliki SVG, np. ikonę z mikroanimacjami?
Pobierz diagram w formacie PDF.