Mengambil dan melepaskan fokus

Dalam mode interaksi khusus (seperti kanvas gambar yang disematkan, permukaan pengontrol game, atau dialog input modal), aplikasi Anda mungkin perlu mengunci fokus sementara ke satu komponen dan mencegah tombol Tab atau tombol arah berpindah dari komponen tersebut.

Fokus pengambilan gambar

Untuk mengambil fokus, panggil captureFocus() pada FocusRequester:

val focusRequester = remember { FocusRequester() }

Box(
    modifier = Modifier
        .focusRequester(focusRequester)
        .focusable()
        .onFocusChanged { focusState ->
            if (focusState.isFocused) {
                focusRequester.captureFocus()
            }
        }
)

Saat fokus diambil, tombol navigasi fokus standar (seperti Tab) tidak memindahkan fokus ke komponen di dekatnya.

Melepaskan fokus

Untuk keluar dari status yang diambil dan memulihkan navigasi fokus normal di seluruh UI, panggil freeFocus():

IconButton(
    onClick = {
        focusRequester.freeFocus()
    }
) {
    Icon(Icons.Default.Close, contentDescription = "Exit focus lock")
}