Memilih API animasi

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

Diagram alir yang menjelaskan pohon keputusan untuk memilih API animasi yang sesuai
Gambar 1. Hierarki keputusan yang menjelaskan cara memilih Animation API yang sesuai.

Diagram alir yang menjelaskan pohon keputusan untuk memilih API animasi yang sesuai

Gunakan hierarki keputusan berikut untuk memilih Animation API yang paling sesuai untuk kasus penggunaan Anda:

  • Apakah animasi Anda berbasis seni (yaitu, SVG atau gambar)?
    • Ya: Apakah menggunakan SVG sederhana (yaitu, ikon dengan animasi mikro)?
    • Tidak: Apakah animasi perlu diulang tanpa batas?
      • Ya: rememberInfiniteTransition.
      • Tidak: Apakah Anda menganimasikan tata letak?
        • Ya: Apakah Anda beralih di antara composable dengan konten yang berbeda?
          • Ya: Apakah Anda menggunakan Navigation-Compose?
          • Tidak: Apakah Anda menganimasikan muncul atau hilangnya konten?
            • Ya: AnimatedVisibility atau animateFloatAsState dengan Modifier.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 propertinya benar-benar independen satu sama lain?".
                • Tidak: Apakah Anda menganimasikan item daftar?
        • Tidak: Apakah Anda menganimasikan beberapa properti?
          • Ya: Apakah properti benar-benar independen satu sama lain?
            • Ya: animate*AsState. Untuk Teks, gunakan TextMotion.Animated.
            • Tidak: Apakah mereka perlu dimulai pada waktu yang sama?
              • Ya: updateTransition dengan AnimatedVisibility, animateFloat, animateInt, dll.
              • Tidak: Animatable dengan animateTo, dipanggil dengan pengaturan waktu yang berbeda menggunakan fungsi penangguhan.
          • Tidak: Apakah animasi memiliki nilai target yang telah ditentukan sebelumnya?
            • Ya: animate*AsState. Untuk Teks, gunakan TextMotion.Animated.
            • Tidak: Apakah animasi digerakkan oleh gestur dan merupakan satu-satunya sumber kebenaran?

Download versi PDF diagram.