عندما يشغّل تطبيقك ملف وسائط، يجب أن يتمكّن المستخدمون من إيقاف التشغيل مؤقتًا واستئنافه من خلال الضغط على مفتاح المسافة على لوحة مفاتيح فعلية.
الردّ على أحداث ضغط المفاتيح
تستجيب التطبيقات المستندة إلى Jetpack Compose أو طرق العرض لضغطات مفاتيح لوحة المفاتيح بطرق مشابهة: يستمع التطبيق إلى أحداث ضغطات المفاتيح، ويُصفّي الأحداث، ويستجيب لضغطات المفاتيح، مثل ضغطة المفتاح Spacebar.
1. الاستماع إلى أحداث لوحة المفاتيح
إنشاء
باستخدام Jetpack Compose، استخدِم المعدِّل onPreviewKeyEvent أو المعدِّل onKeyEvent ضمن التنسيق الذي يدير ضغطات المفاتيح:
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
أو
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
المشاهدات
في نشاط في تطبيقك، يمكنك إلغاء طريقة onKeyUp():
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { ... }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
يتم استدعاء الطريقة في كل مرة يتم فيها تحرير مفتاح مضغوط، لذا يتم تشغيلها مرة واحدة بالضبط لكل ضغطة مفتاح.
2. فلترة الضغطات على مفتاح المسافة
داخل طريقتَي Compose onPreviewKeyEvent وonKeyEvent أو طريقة العرض onKeyUp()، يمكنك فلترة KeyEvent.KEYCODE_SPACE لإرسال الحدث الصحيح إلى مكوّن الوسائط:
إنشاء
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
أو
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
المشاهدات
Kotlin
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback() return true } return false
Java
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback(); return true; } return false;
النقاط الرئيسية
-
KEYCODE_SPACE: ثابت رمز المفتاح لمفتاح المسافة.
إنشاء
-
onPreviewKeyEvent: أداة تعديل تتيح لأحد المكوّنات اعتراض أحداث مفاتيح الأجهزة عندما يكون هذا المكوّن (أو أحد العناصر التابعة له) في وضع التركيز. -
onKeyEvent: تشبهonPreviewKeyEvent، وهي أداة تعديل تتيح لأحد المكوّنات اعتراض أحداث مفاتيح الأجهزة عندما يكون المكوّن (أو أحد العناصر التابعة له) في وضع التركيز.
المشاهدات
onKeyUp(): معالج الأحداث الذي يتم استدعاؤه عند تحرير مفتاح ولم تتم معالجته بواسطة طريقة عرض (مثلTextView) ضِمن نشاط
النتائج
يمكن لتطبيقك الآن الاستجابة لعمليات الضغط على مفتاح المسافة لإيقاف الفيديو أو الوسائط الأخرى مؤقتًا واستئناف تشغيلها.