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