Poniższy diagram pomaga zdecydować, którego interfejsu API użyć do implementacji animacji.
Aby wybrać interfejs API animacji, który najlepiej pasuje do Twojego przypadku użycia, odpowiedz na pytania w schemacie decyzyjnym poniżej:
- Czy moja animacja przypomina grafikę, która składa się z wielu elementów wizualnych? tj. pliki SVG lub obrazy
- 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 parametramienterTransition
iexitTransition
- Nie:
AnimatedContent
,Crossfade
lubPager
- Tak:
- Nie: animujesz wygląd / zniknięcie?
- Tak:
AnimatedVisibility
lubanimateFloatAsState
za pomocą:Modifier.alpha()
- Nie: animujesz rozmiar?
- Tak:
Modifier.animateContentSize
- Nie: inna właściwość układu? ie odsunięcie, dopełnienie itp.
- Tak: patrz odpowiedź na pytanie „Czy usługi są od siebie całkowicie niezależne?”
- Nie: animacje elementów listy?
- Tak:
animateItemPlacement()
(zmiana kolejności i usuwanie elementów będzie wkrótce dostępna)
- 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 wybierzTextMotion.Animated
- Nie: chcesz zacząć od tej samej godziny?
- Tak: tak:
updateTransition
z:AnimatedVisibility
,animateFloat
,animateInt
itp. - Nie: funkcja
Animatable
wywołanaanimateTo
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 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: nie ma odpowiedzi? 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 schemat w formacie PDF.