FocusManager vous permet de déplacer la sélection de manière directionnelle ou de la supprimer complètement.
Utilisez FocusRequester pour cibler directement un composant (voir Demander la sélection de manière programmatique).
Mouvement directionnel du curseur avec FocusManager
Pour déplacer la sélection 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") }
Netteté
Pour supprimer la mise au point de l'élément qui la détient actuellement (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 la mise au point et ne l'efface pas si le composant actif a capturé la mise au point.force = true: efface inconditionnellement la sélection, 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 mise au point
- Ordre de balayage du focus
- Demander le focus par programmation