प्रोग्रेस को मैन्युअल तरीके से ऐक्सेस करना

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