دسترسی به پیشرفت به‌صورت دستی

PredictiveBackHandler قابل‌ساخت در Jetpack Compose به شما امکان می‌دهد اشاره برگشت را رهگیری کنید و به پیشرفت آن دسترسی داشته باشید. می‌توانید به اشاره برگشت کاربر در زمان واقعی واکنش نشان دهید و براساس میزان تند کشیدن کاربر، پویانمایی‌ها یا رفتارهای سفارشی ایجاد کنید.

برای استفاده از 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 برای باز یا بسته کردن روان کشو براساس سرعت اشاره هنگام تکمیل یا لغو اشاره استفاده کنید.