Mengakses progres secara manual

Composable PredictiveBackHandler di Jetpack Compose memungkinkan Anda mencegat gestur kembali dan mengakses progresnya. Anda dapat bereaksi terhadap gestur kembali pengguna secara real time, membuat animasi atau perilaku kustom berdasarkan jarak geser pengguna.

Untuk menggunakan PredictiveBackHandler, pastikan Anda menggunakan androidx.activity:activity:1.6.0 atau yang lebih tinggi.

PredictiveBackHandler menyediakan Flow<BackEventCompat> yang memunculkan peristiwa yang mewakili progres gestur kembali. Setiap peristiwa berisi informasi seperti:

  • progress: Nilai float antara 0 dan 1 yang menunjukkan progres gestur kembali (0 = gestur dimulai, 1 = gestur selesai).
  • touchX dan touchY: Koordinat X dan Y peristiwa sentuh.

Cuplikan berikut menunjukkan penggunaan dasar PredictiveBackHandler:

PredictiveBackHandler(true) { progress: Flow<BackEventCompat> ->
    // code for gesture back started
    try {
        progress.collect { backEvent ->
            // code for progress
            boxScale = 1F - (1F * backEvent.progress)
        }
        // code for completion
        boxScale = 0F
    } catch (e: CancellationException) {
        // code for cancellation
        boxScale = 1F
    }
}

Contoh: Mengintegrasikan dengan panel navigasi

Contoh ini menunjukkan cara menerapkan animasi dalam aplikasi kustom menggunakan PredictiveBackHandler untuk membuat interaksi yang lancar dengan panel samping navigasi sebagai respons terhadap gestur kembali di JetLagged:

Gambar 5. Panel navigasi dengan dukungan kembali prediktif.

Dalam contoh ini, PredictiveBackHandler digunakan untuk:

  • Melacak progres gestur kembali.
  • Perbarui translationX panel samping berdasarkan progres gestur.
  • Gunakan velocityTracker untuk membuka atau menutup panel samping dengan lancar berdasarkan kecepatan gestur saat gestur selesai atau dibatalkan.