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 seberapa jauh pengguna menggeser.

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

PredictiveBackHandler menyediakan Flow<BackEventCompat> yang memancarkan 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
        throw e
    }
}

Contoh: Mengintegrasikan dengan panel navigasi

Contoh ini menunjukkan cara menerapkan animasi dalam aplikasi kustom menggunakan PredictiveBackHandler untuk membuat interaksi yang lancar dengan panel 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 laci berdasarkan progres gestur.
  • Gunakan velocityTracker untuk membuka atau menutup panel samping dengan lancar berdasarkan kecepatan gestur saat gestur selesai atau dibatalkan.