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

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

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

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

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

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

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