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

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