Diagram di bawah ini membantu Anda menentukan API apa yang akan digunakan untuk menerapkan animasi.
Ikuti pertanyaan pohon keputusan di bawah untuk memilih API animasi yang paling sesuai dengan kasus penggunaan Anda:
- Apakah animasi saya lebih mirip seni, yang terdiri dari banyak elemen visual? Misalnya, SVG atau gambar
- Ya: Apakah aplikasi memiliki SVG sederhana? yaitu 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: Mengubah antara beberapa composable yang memiliki konten berbeda?
- Ya: Dengan navigation-compose?
- Ya:
composable()
denganenterTransition
danexitTransition
ditetapkan - Tidak:
AnimatedContent
,Crossfade
, atauPager
- Ya:
- Tidak: Menganimasikan kemunculan / hilangnya?
- Ya:
AnimatedVisibility
atauanimateFloatAsState
denganModifier.alpha()
- Tidak: Menganimasikan ukuran?
- Ya:
Modifier.animateContentSize
- Tidak: Properti tata letak lainnya? Misalnya, offset, padding, dll.
- Ya: Lihat "Apakah properti sepenuhnya independen satu sama lain?"
- Tidak: Animasi item daftar?
- Ya:
animateItemPlacement()
(tata ulang dan hapus akan segera hadir)
- Ya:
- Ya:
- Ya:
- Ya: Dengan navigation-compose?
- Tidak: Apakah Anda perlu menganimasikan beberapa properti?
- Ya: Apakah properti tersebut benar-benar independen satu sama lain?
- Ya:
animate*AsState
, untuk Teks, gunakanTextMotion.Animated
- Tidak: Memulai secara bersamaan?
- 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 kumpulan nilai target yang telah ditentukan sebelumnya?
- Ya:
animate*AsState
, untuk Teks, gunakanTextMotion.Animated
- Tidak: Animasi berbasis gestur? Apakah animasi Anda adalah satu-satunya sumber tepercaya?
- Ya:
Animatable
dengananimateTo
/snapTo
- Tidak: Animasi sekali tembak tanpa pengelolaan status?
- Ya:
AnimationState
atauanimate
- Tidak: Jawaban tidak ada di sini? Mengajukan permintaan fitur
- Ya:
- Ya:
- Ya:
- Ya: Apakah properti tersebut benar-benar independen satu sama lain?
- Ya: Mengubah antara beberapa composable yang memiliki konten berbeda?
- Ya:
- Ya: Apakah aplikasi memiliki SVG sederhana? yaitu ikon dengan animasi mikro
Download diagram versi PDF.