Jetpack Compose में मौजूद PredictiveBackHandler कंपोज़ेबल की मदद से, पिछले पेज पर वापस जाने के लिए हाथ से किए गए जेस्चर को इंटरसेप्ट किया जा सकता है. साथ ही, इसके प्रोग्रेस को ऐक्सेस किया जा सकता है. उपयोगकर्ता के बैक जेस्चर पर रीयल-टाइम प्रतिक्रिया दी जा सकती है. साथ ही, उपयोगकर्ता कितना स्वाइप करता है इस आधार पर कस्टम ऐनिमेशन या व्यवहार बनाए जा सकते हैं.
PredictiveBackHandler का इस्तेमाल करने के लिए, पक्का करें कि आपके पास androidx.activity:activity:1.6.0 या इसके बाद का वर्शन हो.
PredictiveBackHandler उपलब्ध कराता है. यह बैक जेस्चर की प्रोग्रेस दिखाने वाले इवेंट एमिट करता है
.Flow<BackEventCompat> हर इवेंट में यह जानकारी शामिल होती है:
progress: यह 0 और 1 के बीच की फ़्लोट वैल्यू होती है. इससे बैक जेस्चर की प्रोग्रेस का पता चलता है. जैसे, 0 का मतलब है कि जेस्चर शुरू हो गया है और 1 का मतलब है कि जेस्चर पूरा हो गया है.touchXऔरtouchY: ये टच इवेंट के X और Y कोऑर्डिनेट होते हैं.
यहां दिए गए स्निपेट में, PredictiveBackHandler के सामान्य इस्तेमाल के बारे में बताया गया है:
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 } }
उदाहरण: नेविगेशन पैनल के साथ इंटिग्रेट करना
इस उदाहरण में, PredictiveBackHandler का इस्तेमाल इन कामों के लिए किया गया है:
- बैक जेस्चर की प्रोग्रेस को ट्रैक करना.
- जेस्चर की प्रोग्रेस के आधार पर, पैनल के
translationXको अपडेट करना. - जेस्चर पूरा होने या रद्द होने पर, जेस्चर की रफ़्तार के आधार पर पैनल को आसानी से खोलने या बंद करने के लिए,
velocityTrackerका इस्तेमाल करना.