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