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? yaitu SVG atau gambar
- Ya: Apakah 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: Beralih di 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()
(pengurutan ulang dan penghapusan 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: Mulai 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 kumpulan nilai target yang telah ditentukan sebelumnya?
- Ya:
animate*AsState
, untuk Teks, gunakanTextMotion.Animated
- Tidak: Animasi yang didorong 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: Beralih di antara beberapa composable yang memiliki konten berbeda?
- Ya:
- Ya: Apakah memiliki SVG sederhana? yaitu ikon dengan animasi mikro
Download diagram versi PDF.