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

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
    }
}

उदाहरण: नेविगेशन पैनल के साथ इंटिग्रेट करना

इस उदाहरण में, JetLagged में बैक जेस्चर के जवाब में, नेविगेशन पैनल के साथ आसानी से इंटरैक्ट करने के लिए, PredictiveBackHandler का इस्तेमाल करके, ऐप्लिकेशन में कस्टम ऐनिमेशन लागू करने का तरीका दिखाया गया है:

पांचवी इमेज. पीछे जाने पर झलक दिखाने वाले हाथ के जेस्चर की सुविधा के साथ नेविगेशन पैनल.

इस उदाहरण में, PredictiveBackHandler का इस्तेमाल इन कामों के लिए किया गया है:

  • बैक जेस्चर की प्रोग्रेस को ट्रैक करना.
  • जेस्चर की प्रोग्रेस के आधार पर, पैनल के translationX को अपडेट करना.
  • जेस्चर पूरा होने या रद्द होने पर, जेस्चर की रफ़्तार के आधार पर पैनल को आसानी से खोलने या बंद करने के लिए, velocityTracker का इस्तेमाल करना.