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 का इस्तेमाल करके ऐप्लिकेशन में कस्टम ऐनिमेशन लागू करने का तरीका दिखाया गया है. इससे JetLagged में बैक जेस्चर के जवाब में, नेविगेशन ड्रॉअर के साथ आसानी से इंटरैक्ट किया जा सकता है:
इस उदाहरण में, PredictiveBackHandler का इस्तेमाल इन कामों के लिए किया गया है:
- पिछले पेज पर वापस जाने के लिए किए गए जेस्चर की प्रोग्रेस को ट्रैक करता है.
- जेस्चर की प्रोग्रेस के आधार पर, ड्रॉअर के
translationXको अपडेट करें. - जेस्चर पूरा होने या रद्द होने पर, जेस्चर की वेलोसिटी के आधार पर ड्रॉअर को आसानी से खोलने या बंद करने के लिए,
velocityTrackerका इस्तेमाल करें.