Jetpack Compose'daki PredictiveBackHandler composable'ı, geri hareketini yakalamanı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 kaydırma mesafesine göre özel animasyonlar veya davranışlar oluşturabilirsiniz.
PredictiveBackHandler özelliğini kullanmak için androidx.activity:activity:1.6.0 veya daha yeni 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 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 öğesinin 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 kullanarak özel bir uygulama içi animasyonun nasıl uygulanacağı gösterilmektedir:
Bu örnekte PredictiveBackHandler şu amaçla 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