เมื่อใดก็ตามที่แอปเล่นไฟล์สื่อ ผู้ใช้ควรหยุดชั่วคราวและเล่นต่อได้โดยกดSpacebar บนแป้นพิมพ์จริง
ตอบสนองต่อเหตุการณ์การกดแป้นพิมพ์
แอปที่ใช้ 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. กรองการกดแป้นเว้นวรรค
ในเมธอดตัวแก้ไข 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
) ภายในกิจกรรม
ผลลัพธ์
ตอนนี้แอปของคุณสามารถตอบสนองต่อการกดSpacebar เพื่อหยุดชั่วคราวและเล่นวิดีโอหรือสื่ออื่นๆ ต่อได้