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