Bagian Urutan traversal fokus default menjelaskan cara Compose
secara otomatis menambahkan perilaku focus traversal ke elemen Anda, baik
navigasi satu dimensi (tombol tab
) dan dua dimensi (tombol panah). Di beberapa
yang berbeda, Anda mungkin perlu mengganti perilaku default ini dan
urutan traversal yang diperlukan.
Ganti urutan traversal satu dimensi
Untuk mengubah urutan traversal fokus default untuk navigasi satu dimensi, Anda membuat kumpulan referensi, satu untuk setiap composable yang dapat difokuskan:
val (first, second, third, fourth) = remember { FocusRequester.createRefs() }
Selanjutnya, gunakan pengubah focusRequester
untuk mengaitkan setiap elemen tersebut dengan
composable:
Column { Row { TextButton({}, Modifier.focusRequester(first)) { Text("First field") } TextButton({}, Modifier.focusRequester(third)) { Text("Third field") } } Row { TextButton({}, Modifier.focusRequester(second)) { Text("Second field") } TextButton({}, Modifier.focusRequester(fourth)) { Text("Fourth field") } } }
Anda kini dapat menggunakan pengubah focusProperties
untuk menentukan urutan traversal kustom:
Column { Row { TextButton( {}, Modifier .focusRequester(first) .focusProperties { next = second } ) { Text("First field") } TextButton( {}, Modifier .focusRequester(third) .focusProperties { next = fourth } ) { Text("Third field") } } Row { TextButton( {}, Modifier .focusRequester(second) .focusProperties { next = third } ) { Text("Second field") } TextButton( {}, Modifier .focusRequester(fourth) .focusProperties { next = first } ) { Text("Fourth field") } } }
Ganti urutan traversal dua dimensi
Dimungkinkan juga untuk menambahkan kontrol halus atas urutan traversal fokus
untuk navigasi dua dimensi
menggunakan tombol panah. Untuk setiap elemen, Anda bisa
mengganti tujuan navigasi default untuk setiap rute dengan menambahkan
pengubah focusProperties
dan menentukan item yang akan muncul,
ke bawah, atau arah lain:
TextButton( onClick = {}, modifier = Modifier .focusRequester(fourth) .focusProperties { down = third right = second } ) {}
Teknik ini tidak hanya menggunakan panah {i>keyboard<i} secara efektif, tetapi juga bekerja dengan D-Pads dan stick pada pengontrol berkabel dan nirkabel.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Mengubah perilaku fokus
- Fokus di Compose