FocusManager vous permet de déplacer le curseur de sélection dans une direction ou de le supprimer complètement.
Utilisez FocusRequester pour cibler directement un composant (voir Demander la sélection par programmation).
Mouvement directionnel du curseur avec FocusManager
Pour déplacer le curseur de manière programmatique dans une direction relative :
- Obtenez l'instance
FocusManagerà l'aide deLocalFocusManager.current. - Appelez
moveFocus()avec une valeurFocusDirection(Next,Previous,Up,Down,Left,Right,EnterouExit).
val focusManager = LocalFocusManager.current Button( onClick = { focusManager.moveFocus(FocusDirection.Next) } ) { Text("Next Field") }
Effacer le focus
Pour supprimer la sélection de l'élément actuellement sélectionné (par exemple, lorsque l'utilisateur appuie sur la touche Échap), appelez clearFocus() :
val focusManager = LocalFocusManager.current Box( modifier = Modifier.onPreviewKeyEvent { keyEvent -> if (keyEvent.key == Key.Escape && keyEvent.type == KeyEventType.KeyUp) { focusManager.clearFocus() true } else { false } } )
La fonction clearFocus() accepte un paramètre force: Boolean = false facultatif :
force = false(par défaut) : respecte les verrouillages de sélection et n'efface pas la sélection si le composant actif a capturé la sélection.force = true: efface la sélection de manière inconditionnelle, même si un composant a capturé la sélection.
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Cibles de sélection
- Ordre de balayage du focus
- Demander le focus de manière programmatique