Mengambil dan melepaskan fokus

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

Fokus pengambilan gambar

Untuk menangkap 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")
}