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का इस्तेमाल करें.