בכל פעם שהאפליקציה מפעילה קובץ מדיה, המשתמשים צריכים להיות מסוגלים להשהות ולהמשיך את ההפעלה בלחיצה על מקש הרווח במקלדת פיזית.
תגובה לאירועי הקשה על מקש
אפליקציות שמבוססות על Jetpack Compose או על תצוגות מגיבים ללחיצות על מקשי המקלדת בדרכים דומות: האפליקציה מקשיבה לאירועי הקשה על מקש, מסננת את האירועים ומגיבה ללחיצות על מקשים כמו הקשה על מקש הרווח.
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. סינון הקשות על מקש הרווח
בתוך שיטות המשתנה 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
, שינוי שמאפשר לרכיב ליירט אירועי מפתחות של חומרה כשהרכיב (או אחד מהצאצאים שלו) נמצא בחזית.
תצוגות מפורטות
תוצאות
מעכשיו האפליקציה יכולה להגיב ללחיצות על מקש הרווח כדי להשהות ולהמשיך סרטון או מדיה אחרת.