W specjalistycznych trybach interakcji (np. w przypadku wbudowanego obszaru rysowania, powierzchni kontrolera do gier lub modalnego okna dialogowego wprowadzania danych) aplikacja może tymczasowo blokować fokus na jednym komponencie i uniemożliwiać nawigację za pomocą klawisza Tab lub klawiszy kierunkowych.
Zaznaczanie
Aby zaznaczyć element, wywołaj captureFocus() na elemencie FocusRequester:
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Gdy fokus jest przechwycony, standardowe klawisze nawigacji (np. Tab) nie przenoszą zaznaczenia do sąsiednich komponentów.
Zwolnij fokus
Aby wyjść ze stanu przechwytywania i przywrócić normalną nawigację przy użyciu zaznaczenia w interfejsie, wywołaj funkcję freeFocus():
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Punkty ostrości
- Cele skupienia grupy
- Programowe żądanie fokusu