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 poniższe pytania w ramach drzewa decyzyjnego:
- Czy moja animacja przypomina grafikę, złożoną z wielu elementów wizualnych, np. plików SVG lub obrazów?
- Tak: czy plik zawiera proste pliki SVG, na przykład 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 elementami kompozycyjnymi o różnych treściach?
- Tak: z nawigacją i tworzeniem wiadomości?
- Tak:
composable()
z ustawionymienterTransition
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, tj. przesunięcie, dopełnienie itp.
- Tak: zapoznaj się z sekcją „Czy właściwości są od siebie całkowicie niezależne?”
- Nie: chcesz wyświetlić animacje elementu?
- Tak:
animateItemPlacement()
(zmiana kolejności i usuwanie elementów będzie wkrótce dostępna)
- Tak:
- Tak:
- Tak:
- Tak: z nawigacją i tworzeniem wiadomości?
- Nie: czy potrzebujesz animować kilka właściwości?
- Tak: czy obiekty 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
, jako tekst użyjTextMotion.Animated
- Nie: animacja sterowana gestami? Animacja jest jedynym źródłem prawdy?
- Tak:
Animatable
za pomocąanimateTo
/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 obiekty są od siebie całkowicie niezależne?
- Tak: przełączanie się między wieloma elementami kompozycyjnymi o różnych treściach?
- Tak:
- Tak: czy plik zawiera proste pliki SVG, na przykład ikonę z mikroanimacjami
Pobierz schemat w formacie PDF.