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 d'entrée modale), votre application peut avoir besoin de verrouiller temporairement la mise au point sur un seul composant et d'empêcher la navigation à l'aide de la touche Tabulation ou des touches directionnelles.
Capturer le focus
Pour capturer le focus, appelez captureFocus() sur un FocusRequester :
val focusRequester = remember { FocusRequester() } Box( modifier = Modifier .focusRequester(focusRequester) .focusable() .onFocusChanged { focusState -> if (focusState.isFocused) { focusRequester.captureFocus() } } )
Lorsque la sélection est capturée, les touches de navigation standard (telles que Tabulation) ne déplacent pas la sélection vers les composants voisins.
Priorité de la version
Pour quitter l'état de capture et restaurer la navigation normale au clavier 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 mise au point
- Grouper les cibles de focus
- Demander le focus par programmation