Diagram di bawah ini membantu Anda menentukan API apa yang akan digunakan untuk menerapkan animasi.
Ikuti pertanyaan pohon keputusan di bawah ini untuk memilih API animasi mana yang paling sesuai untuk kasus penggunaan Anda:
- Apakah animasi saya lebih seperti seni, yang terdiri dari banyak elemen visual? misalnya SVG atau gambar
- Ya: Apakah aplikasi memiliki SVG sederhana? misalnya ikon dengan animasi mikro
- Ya:
AnimatedVectorDrawable
- Tidak: Framework animasi pihak ketiga, yaitu
Lottie
- Ya:
- Tidak: Apakah perlu diulang selamanya?
- Ya:
rememberInfiniteTransition
- Tidak: Apakah ini animasi tata letak?
- Ya: Berubah di antara beberapa composable yang memiliki konten berbeda?
- Ya: Dengan navigation-compose?
- Ya:
composable()
denganenterTransition
danexitTransition
ditetapkan - Tidak:
AnimatedContent
,Crossfade
, atauPager
- Ya:
- Tidak: Menganimasikan pemunculan / penghilangan?
- Ya:
AnimatedVisibility
atauanimateFloatAsState
denganModifier.alpha()
- Tidak: Menganimasikan ukuran?
- Ya:
Modifier.animateContentSize
- Tidak: Properti tata letak lainnya? misalnya offset, padding, dll.
- Ya: Lihat "Apakah properti benar-benar independen satu sama lain?"
- Tidak: Animasi item daftar?
- Ya:
animateItemPlacement()
(urutkan ulang dan hapus segera hadir)
- Ya:
- Ya:
- Ya:
- Ya: Dengan navigation-compose?
- Tidak: Apakah Anda perlu menganimasikan beberapa properti?
- Ya: Apakah properti benar-benar independen satu sama lain?
- Ya:
animate*AsState
, untuk Teks, gunakanTextMotion.Animated
- Tidak: Memulai pada waktu yang sama?
- Ya: Ya:
updateTransition
denganAnimatedVisibility
,animateFloat
,animateInt
, dll. - Tidak:
Animatable
dengananimateTo
dipanggil dengan pengaturan waktu yang berbeda (menggunakan fungsi penangguhan)
- Ya: Ya:
- Ya:
- Tidak: Apakah animasi memiliki satu set nilai target yang telah ditentukan sebelumnya?
- Ya:
animate*AsState
, untuk Teks, gunakanTextMotion.Animated
- Tidak: Animasi berbasis gestur? Animasi Anda adalah satu-satunya sumber ketepatan?
- Ya:
Animatable
dengananimateTo
/snapTo
- Tidak: Animasi satu kali tanpa pengelolaan status?
- Ya:
AnimationState
atauanimate
- Tidak: Jawaban tidak ada di sini? Mengajukan permintaan fitur
- Ya:
- Ya:
- Ya:
- Ya: Apakah properti benar-benar independen satu sama lain?
- Ya: Berubah di antara beberapa composable yang memiliki konten berbeda?
- Ya:
- Ya: Apakah aplikasi memiliki SVG sederhana? misalnya ikon dengan animasi mikro
Download diagram versi PDF.