Jetpack Compose'daki PredictiveBackHandler
bileşeni, geri hareketini durdurmanıza ve ilerleme durumuna erişmenize olanak tanır. Kullanıcının geri hareketine anında tepki vererek kullanıcının ne kadar kaydırmasına bağlı olarak özel animasyonlar veya davranışlar oluşturabilirsiniz.
PredictiveBackHandler
öğesini 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ğıdakiler gibi bilgiler bulunur:
progress
: Geri hareketinin ilerleme durumunu belirten 0 ile 1 arasında değişen bir kayan nokta değeri (0 = hareket başladı, 1 = hareket tamamlandı).touchX
vetouchY
: Dokunma etkinliğinin X ve Y koordinatları.
Aşağıdaki snippet'te PredictiveBackHandler
işlevinin 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 } }
Örnek: Gezinme çekmecesine entegrasyon
Bu örnekte, JetLagged'de geri hareketlere yanıt olarak gezinme çekmecesinde 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 takip edin.
- Hareketin ilerleme durumuna göre çekmecenin
translationX
değerini güncelleyin. - Hareket tamamlandığında veya iptal edildiğinde çekmeceyi hareket hızına göre sorunsuz bir şekilde açmak veya kapatmak için
velocityTracker
simgesini kullanın.