Jetpack Compose'daki PredictiveBackHandler composable'ı, geri hareketini durdurmanıza ve ilerleme durumuna erişmenize olanak tanır. Kullanıcının geri hareketine gerçek zamanlı olarak yanıt verebilir, kullanıcının ne kadar kaydırdığına bağlı olarak özel animasyonlar veya davranışlar oluşturabilirsiniz.
PredictiveBackHandler özelliğini kullanmak için androidx.activity:activity:1.6.0 veya sonraki bir sürümü kullandığınızdan emin olun.
PredictiveBackHandler, geri hareketinin ilerleme durumunu temsil eden etkinlikler yayınlayan bir Flow<BackEventCompat> sağlar. Her etkinlikte aşağıdaki gibi bilgiler bulunur:
progress: Geri hareketinin ilerleme durumunu gösteren 0 ile 1 arasında değişen kayan nokta değeri (0 = hareket başladı, 1 = hareket tamamlandı).touchXvetouchY: Dokunma etkinliğinin X ve Y koordinatları.
Aşağıdaki snippet'te PredictiveBackHandler'nın temel kullanımı gösterilmektedir:
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 } }
Örnek: Gezinme çekmecesiyle entegrasyon
Bu örnekte, JetLagged'de geri hareketlerine yanıt olarak bir gezinme çekmecesiyle sorunsuz bir etkileşim oluşturmak için PredictiveBackHandler kullanılarak özel bir uygulama içi animasyonun nasıl uygulanacağı gösterilmektedir:
Bu örnekte PredictiveBackHandler şu amaçlarla kullanılır:
- Geri hareketinin ilerleme durumunu izleme
- Çekmecenin
translationXözelliğini, hareketin ilerleme durumuna göre güncelleme - Çekmeceyi, hareket tamamlandığında veya iptal edildiğinde hareket hızına göre sorunsuz bir şekilde açmak ya da kapatmak için
velocityTrackerkullanma