Dalam beberapa alur pengguna, aplikasi Anda perlu memindahkan fokus secara eksplisit ke komponen tertentu. Misalnya, saat pengguna mengklik tombol "Telusuri", Anda mungkin ingin menempatkan fokus secara otomatis ke kolom input penelusuran.
Menggunakan FocusRequester
Untuk meminta fokus secara eksplisit:
- Buat dan ingat instance
FocusRequester:val focusRequester = remember { FocusRequester() }. - Lampirkan
FocusRequesterke composable target menggunakan pengubahfocusRequester. - Panggil
requestFocus()dalam callback peristiwa (sepertionClick) atau cakupan coroutine.
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
Menetapkan fokus layar awal
Untuk menempatkan fokus awal pada komponen tertentu saat layar pertama kali muncul,
pemicu requestFocus() di dalam LaunchedEffect(Unit):
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Saat berpindah antar-penampung atau kembali dari layar lain,
Anda juga dapat melampirkan focusRestorer() ke penampung induk
untuk otomatis mengembalikan fokus ke turunan yang terakhir difokuskan.
Untuk mengetahui informasi selengkapnya, lihat panduan Memulihkan fokus.
Direkomendasikan untuk Anda
- Catatan: teks link ditampilkan saat JavaScript nonaktif
- Target fokus
- Mengelompokkan target fokus
- Memulihkan fokus
- Memindahkan dan menghapus fokus