W specjalnych trybach interakcji (takich jak wbudowany obszar roboczy do rysowania, powierzchnia kontrolera do gier lub modalne okno dialogowe wprowadzania danych) aplikacja może wymagać tymczasowego zablokowania zaznaczenia na jednym komponencie i uniemożliwienia nawigacji za pomocą klawisza Tab lub klawiszy kierunkowych.
Ustawianie ostrości
Aby ustawić zaznaczenie, wywołaj captureFocus() na 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 fokusem (takie jak Tab) nie przenoszą fokusu na sąsiednie komponenty.
Zwolnienie nacisku
Aby wyjść ze stanu przechwycenia i przywrócić normalną nawigację przy użyciu zaznaczenia w interfejsie, wywołaj 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.
- Cele skupienia
- Cele skupienia grupy
- Zautomatyzowane żądanie zaznaczenia