ম্যানুয়ালি প্রোগ্রেস অ্যাক্সেস করা

Jetpack Compose-এ PredictiveBackHandler কম্পোজেবল আপনাকে ব্যাক জেসচার ইন্টারসেপ্ট করতে এবং এর প্রগ্রেস অ্যাক্সেস করতে দেয়। ব্যবহারকারী কতদূর সোয়াইপ করছেন তার উপর ভিত্তি করে কাস্টম অ্যানিমেশন বা আচরণ তৈরি করে, আপনি রিয়েল-টাইমে ব্যবহারকারীর ফিরে যাওয়ার জেসচারে প্রতিক্রিয়া জানাতে পারবেন।

PredictiveBackHandler ব্যবহার করতে, আপনি androidx.activity:activity:1.6.0 বা তার পরবর্তী ভার্সন ব্যবহার করছেন কিনা তা নিশ্চিত করুন।

PredictiveBackHandler একটি Flow<BackEventCompat> প্রদান করে যা ব্যাক জেসচারের প্রগ্রেস দেখানোর জন্য ইভেন্ট এমিট করে। প্রতিটি ইভেন্টে এই ধরনের তথ্য থাকে:

  • progress: ০ থেকে ১-এর মধ্যে একটি ফ্লোট ভ্যালু যা ব্যাক জেসচারের প্রোগ্রেস নির্দেশ করে (০ = জেসচার শুরু হয়েছে, ১ = জেসচার সম্পূর্ণ হয়েছে)।
  • 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 ব্যবহার করুন।