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

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