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 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: 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 / 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 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 sepenuhnya 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 serangkaian nilai target yang telah ditentukan?
- 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? Ajukan permintaan fitur
- Ya:
- Ya:
- Ya:
- Ya: Apakah properti sepenuhnya independen satu sama lain?
- Ya: Mengubah antara beberapa composable yang memiliki konten berbeda?
- Ya:
- Ya: Apakah memiliki SVG sederhana? yaitu ikon dengan animasi mikro
Download diagram versi PDF.