Dans les modes d'interaction spécialisés (comme un canevas de dessin intégré, une surface de manette de jeu ou une boîte de dialogue de saisie modale), votre application peut avoir besoin de verrouiller temporairement la sélection sur un seul composant et d'empêcher la touche Tabulation ou les touches directionnelles de quitter la navigation.
Capturer le focus
Pour capturer la sélection, appelez captureFocus() sur un FocusRequester :
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Lorsque le focus est capturé, les touches de navigation standards (comme Tab) ne déplacent pas le focus vers les composants voisins.
Priorité de la version
Pour quitter l'état de capture et rétablir la navigation normale du curseur dans l'UI, appelez freeFocus() :
IconButton( onClick = { focusRequester.freeFocus() } ) { Icon(Icons.Default.Close, contentDescription = "Exit focus lock") }
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Cibles de sélection
- Grouper les cibles de focus
- Demander le focus de manière programmatique