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