PredictiveBackHandler قابل تنظیم در Jetpack Compose به شما امکان می دهد ژست عقب را متوقف کنید و به پیشرفت آن دسترسی داشته باشید. میتوانید به ژست برگشتی کاربر در زمان واقعی واکنش نشان دهید و انیمیشنها یا رفتارهای سفارشی را بر اساس میزان سوایپ کاربر ایجاد کنید.
برای استفاده از PredictiveBackHandler ، مطمئن شوید که از androidx.activity:activity:1.6.0 یا بالاتر استفاده می کنید.
PredictiveBackHandler یک Flow<BackEventCompat> ارائه میکند که رویدادهایی را منتشر میکند که نشاندهنده پیشرفت حرکت برگشتی است. هر رویداد حاوی اطلاعاتی مانند:
-
progress: یک مقدار شناور بین 0 و 1 که نشان دهنده پیشرفت حرکت برگشتی است (0 = اشاره شروع شد، 1 = حرکت کامل شد). -
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برای باز کردن یا بستن هموار کشو بر اساس سرعت حرکت هنگام تکمیل یا لغو حرکت استفاده کنید.