Mit FocusManager können Sie den Fokus in eine bestimmte Richtung verschieben oder ganz aufheben.
Verwenden Sie FocusRequester für das direkte Targeting von Komponenten (siehe Fokus programmatisch anfordern).
Fokusbewegung mit FocusManager
So verschieben Sie den Fokus programmatisch in eine relative Richtung:
- Rufen Sie die
FocusManager-Instanz mitLocalFocusManager.currentab. - Rufen Sie
moveFocus()mit einemFocusDirection-Wert auf (Next,Previous,Up,Down,Left,Right,EnteroderExit).
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Fokus löschen
Wenn Sie den Fokus von dem Element entfernen möchten, das ihn gerade hat (z. B. wenn der Nutzer die Esc-Taste drückt), rufen Sie clearFocus() auf:
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
Die Funktion clearFocus() akzeptiert den optionalen Parameter force: Boolean = false:
force = false(Standard): Berücksichtigt Fokussperren und löscht den Fokus nicht, wenn die aktive Komponente den Fokus erfasst hat.force = true: Löscht den Fokus bedingungslos, auch wenn eine Komponente den Fokus erfasst hat.
Empfehlungen für Sie
- Hinweis: Der Linktext wird angezeigt, wenn JavaScript deaktiviert ist.
- Fokusziele
- Fokus-Durchlaufreihenfolge
- Fokus programmatisch anfordern