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