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 tepki 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 bir 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 ile ilgili 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 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