Jetpack Compose'daki PredictiveBackHandler
composable'ı, geri gitme 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 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 gitme 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ı).touchX
vetouchY
: Dokunma etkinliğinin X ve Y koordinatları.
Aşağıdaki snippet'te PredictiveBackHandler
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 izleyin.
- Çekmecenin
translationX
özelliğini, hareketin ilerleme durumuna göre güncelleyin. - Çekmeceyi, hareket tamamlandığında veya iptal edildiğinde hareket hızına göre sorunsuz bir şekilde açmak ya da kapatmak için
velocityTracker
kullanın.