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