Diagram berikut membantu Anda menentukan API apa yang akan digunakan untuk menerapkan animasi.

Gunakan hierarki keputusan berikut untuk memilih API animasi yang paling sesuai untuk kasus penggunaan Anda:
- Apakah animasi Anda berbasis seni (yaitu, SVG atau gambar)?
- Ya: Apakah aplikasi menggunakan SVG sederhana (yaitu, ikon dengan animasi mikro)?
- Ya:
AnimatedVectorDrawable
. - Tidak: Framework animasi pihak ketiga, misalnya,
Lottie
.
- Ya:
- Tidak: Apakah animasi perlu diulang tanpa batas?
- Ya:
rememberInfiniteTransition
. - Tidak: Apakah Anda menganimasikan tata letak?
- Ya: Apakah Anda beralih antar-composable dengan konten yang berbeda?
- Ya: Apakah Anda menggunakan Navigation-Compose?
- Ya:
composable()
denganenterTransition
danexitTransition
ditetapkan. - Tidak:
AnimatedContent
,Crossfade
, atauPager
.
- Ya:
- Tidak: Apakah Anda menganimasikan kemunculan atau hilangnya konten?
- Ya:
AnimatedVisibility
atauanimateFloatAsState
denganModifier.alpha()
. - Tidak: Apakah Anda menganimasikan perubahan ukuran?
- Ya:
Modifier.animateContentSize
. - Tidak: Apakah Anda menganimasikan properti tata letak lain (misalnya, offset atau padding)?
- Ya: Lihat "Apakah properti sepenuhnya independen satu sama lain?".
- Tidak: Apakah Anda menganimasikan item daftar?
- Ya:
- Ya:
- Ya: Apakah Anda menggunakan Navigation-Compose?
- Tidak: Apakah Anda menganimasikan beberapa properti?
- Ya: Apakah properti tersebut benar-benar independen satu sama lain?
- Ya:
animate*AsState
. Untuk Teks, gunakanTextMotion.Animated
. - Tidak: Apakah keduanya harus dimulai pada waktu yang sama?
- Ya:
updateTransition
denganAnimatedVisibility
,animateFloat
,animateInt
, dll. - Tidak:
Animatable
dengananimateTo
, dipanggil dengan pengaturan waktu yang berbeda menggunakan fungsi penangguhan.
- Ya:
- Ya:
- Tidak: Apakah animasi memiliki nilai target yang telah ditentukan sebelumnya?
- Ya:
animate*AsState
. Untuk Teks, gunakanTextMotion.Animated
. - Tidak: Apakah animasi didorong oleh gestur dan merupakan sumber tepercaya tunggal?
- Ya:
Animatable
dengananimateTo
/snapTo
. - Tidak: Apakah animasi one-shot tanpa pengelolaan status?
- Ya:
AnimationState
atauanimate
. - Tidak: Jawaban tidak ada di sini? Ajukan permintaan fitur.
- Ya:
- Ya:
- Ya:
- Ya: Apakah properti tersebut benar-benar independen satu sama lain?
- Ya: Apakah Anda beralih antar-composable dengan konten yang berbeda?
- Ya:
- Ya: Apakah aplikasi menggunakan SVG sederhana (yaitu, ikon dengan animasi mikro)?
Download diagram versi PDF.