Saat pengguna menavigasi UI Compose dengan keyboard hardware, D-pad, atau pengontrol rotasi, kolom teks berpartisipasi dalam navigasi fokus bersama target fokus lainnya.
Secara default, fokus tidak terperangkap di kolom teks. Anda tidak perlu menambahkan pengendali peristiwa utama
kustom (onKeyEvent atau onPreviewKeyEvent) untuk mengizinkan pengguna keluar dari
kolom teks. Pengguna dapat selalu keluar menggunakan Shift+Tab atau dengan melewati
batas teks menggunakan tombol arah.
KeyboardOptions dapat digunakan untuk memberikan tindakan keyboard virtual yang intuitif yang berkoordinasi dengan navigasi keyboard hardware.
ImeAction.Next memindahkan fokus ke target fokus berikutnya, misalnya.
Traversal fokus satu dimensi
Dalam traversal fokus satu dimensi,
perilaku tombol Tab bergantung pada
lineLimits yang dikonfigurasi di kolom teks:
- Kolom teks satu baris (
TextFieldLineLimits.SingleLine) Menekan tombol Tab akan memindahkan fokus ke target fokus berikutnya di UI. - Kolom teks multibaris (
TextFieldLineLimits.MultiLine()atau default): Menekan tombol Tab akan menyisipkan karakter tab (\t) ke dalam buffer teks, bukan memindahkan fokus. - Navigasi terbalik (Shift+Tab): Menekan Shift+Tab akan memindahkan fokus ke belakang tanpa syarat ke target fokus sebelumnya di kolom teks satu baris dan multi-baris.
// Single-line text field: Tab advances focus to the next focus target BasicTextField( state = singleLineState, lineLimits = TextFieldLineLimits.SingleLine, modifier = Modifier.fillMaxWidth() ) // Multi-line text field: Tab inserts '\t'; Shift + Tab moves to previous target BasicTextField( state = multiLineState, lineLimits = TextFieldLineLimits.MultiLine(), modifier = Modifier.fillMaxWidth() )
Traversal fokus dua dimensi
Saat menggunakan tombol panah (atau D-pad), tombol arah pertama-tama memindahkan kursor teks (caret) dalam kolom teks:
- Navigasi vertikal (atas / bawah):
Menekan tombol
Downakan memindahkan kursor ke bawah baris demi baris. Saat tanda sisipan mencapai baris terakhir, menekan tombol Bawah lagi akan memindahkan fokus ke target fokus yang berdekatan di bawah kolom teks. Menekan tombol Atas pada baris pertama akan memindahkan fokus ke target fokus sebelumnya. - Navigasi horizontal (kiri / kanan / mulai / akhir): Menekan tombol panah horizontal akan memindahkan tanda sisipan melalui karakter. Saat tanda sisipan mencapai awal atau akhir buffer teks, menekan tombol arah lagi akan memindahkan fokus ke target fokus yang berdekatan ke arah tersebut.
Kolom teks di Android TV
Di Android TV, menggunakan pengontrol D-pad tanpa keyboard fisik:
- Memindahkan fokus ke kolom teks akan otomatis menampilkan keyboard virtual.
- Pengguna menavigasi tombol keyboard virtual menggunakan D-pad.
- Menekan tombol Kembali akan menutup keyboard virtual sambil mempertahankan fokus pada kolom teks.
- Setelah keyboard virtual ditutup, menekan tombol arah D-pad akan memindahkan fokus ke target fokus di sekitarnya di layar.
- Menekan tombol Kembali untuk kedua kalinya akan memicu navigasi kembali sistem standar.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Target fokus
- Urutan traversal fokus
- Mengelompokkan target fokus
- Menguji navigasi fokus