FocusManager umożliwia przesuwanie zaznaczenia w określonym kierunku lub całkowite jego usunięcie.
Użyj FocusRequester do bezpośredniego kierowania komponentu (patrz Programowe ustawianie zaznaczenia).
Kierunkowe przesuwanie zaznaczenia za pomocą FocusManager
Aby przenieść zaznaczenie automatycznie we względnym kierunku:
- Uzyskaj instancję
FocusManagerza pomocąLocalFocusManager.current. - Wywołaj
moveFocus()z wartościąFocusDirection(Next,Previous,Up,Down,Left,Right,EnterlubExit).
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Wyraźny punkt skupienia
Aby usunąć zaznaczenie z elementu, który jest obecnie zaznaczony (np. gdy użytkownik naciśnie klawisz Esc), wywołaj clearFocus():
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
Funkcja clearFocus() akceptuje opcjonalny parametr force: Boolean = false:
force = false(domyślna): uwzględnia blokady zaznaczenia i nie usuwa zaznaczenia, jeśli aktywny komponent jest zaznaczony.force = true: bezwarunkowo usuwa zaznaczenie, nawet jeśli komponent jest zaznaczony.
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy język JavaScript jest wyłączony.
- Cele skupienia
- Kolejność przechodzenia między elementami
- Zautomatyzowane żądanie zaznaczenia