يتيح لك العنصر القابل للإنشاء 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
لفتح الدرج أو إغلاقه بسلاسة استنادًا إلى سرعة الإيماءة عند اكتمالها أو إلغائها.