Setiap kali aplikasi Anda memutar file media, pengguna harus dapat menjeda dan melanjutkan pemutaran dengan menekan Spasi pada keyboard fisik.
Merespons peristiwa penekanan tombol
Aplikasi berbasis Jetpack Compose atau tampilan merespons penekanan tombol keyboard dengan cara yang sama: aplikasi memproses peristiwa penekanan tombol, memfilter peristiwa, dan merespons penekanan tombol seperti penekanan tombol Spasi.
1. Memproses peristiwa keyboard
Compose
Dengan Jetpack Compose, gunakan pengubah onPreviewKeyEvent
atau
onKeyEvent
dalam tata letak yang mengelola penekanan tombol:
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
atau
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp) {
...
}
...
})
Tampilan
Dalam aktivitas di aplikasi Anda, ganti metode onKeyUp()
:
Kotlin
override fun onKeyUp(keyCode: Int, event: KeyEvent?): Boolean { ... }
Java
@Override public boolean onKeyUp(int keyCode, KeyEvent event) { ... }
Metode ini dipanggil setiap kali tombol yang ditekan dilepas, sehingga terpicu hanya satu kali untuk setiap penekanan tombol.
2. Memfilter penekanan tombol Spasi
Di dalam metode pengubah Compose onPreviewKeyEvent
dan onKeyEvent
atau
metode onKeyUp()
tampilan, filter KeyEvent.KEYCODE_SPACE
untuk mengirim
peristiwa yang benar ke komponen media:
Compose
Column(modifier = Modifier.onPreviewKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
atau
Column(modifier = Modifier.onKeyEvent { event ->
if (event.type == KeyEventType.KeyUp && event.key == Key.Spacebar) {
...
}
...
})
Tampilan
Kotlin
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback() return true } return false
Java
if (keyCode == KeyEvent.KEYCODE_SPACE) { togglePlayback(); return true; } return false;
Poin utama
KEYCODE_SPACE
: Konstanta kode tombol untuk Spasi.
Compose
onPreviewKeyEvent
: Pengubah yang memungkinkan komponen menangkap peristiwa tombol hardware saat komponen tersebut (atau salah satu turunannya) difokuskan.onKeyEvent
: Serupa denganonPreviewKeyEvent
, pengubah yang memungkinkan komponen menangkap peristiwa tombol hardware saat komponen (atau salah satu turunan) difokuskan.
Tampilan
onKeyUp()
: Pengendali peristiwa yang dipanggil saat tombol dirilis dan tidak ditangani oleh tampilan (sepertiTextView
) dalam aktivitas.
Hasil
Aplikasi Anda kini dapat merespons penekanan tombol Spasi untuk menjeda dan melanjutkan video atau media lainnya.