Dans certains parcours utilisateur, votre application doit déplacer explicitement la sélection vers un composant spécifique. Par exemple, lorsqu'un utilisateur clique sur un bouton "Rechercher", vous pouvez placer automatiquement la sélection dans le champ de saisie de recherche.
Utiliser FocusRequester
Pour demander explicitement la sélection :
- Créez et mémorisez une instance
FocusRequester:val focusRequester = remember { FocusRequester() }. - Associez
FocusRequesterau composable cible à l'aide du modificateurfocusRequester. - Appelez
requestFocus()dans un rappel d'événement (tel queonClick) ou un champ d'application de coroutine.
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) )
val focusRequester = remember { FocusRequester() } var text by remember { mutableStateOf("") } TextField( value = text, onValueChange = { text = it }, modifier = Modifier.focusRequester(focusRequester) ) Button(onClick = { focusRequester.requestFocus() }) { Text("Request focus on TextField") }
Définir le focus initial de l'écran
Pour placer le curseur initial sur un composant spécifique lorsqu'un écran s'affiche pour la première fois, déclenchez requestFocus() dans un LaunchedEffect(Unit) :
LaunchedEffect(Unit) {
focusRequester.requestFocus()
}
Lorsque vous naviguez entre des conteneurs ou que vous revenez d'un autre écran, vous pouvez également associer focusRestorer() aux conteneurs parents pour que le curseur revienne automatiquement sur le dernier enfant sélectionné.
Pour en savoir plus, consultez le guide Restaurer la mise au point.
Recommandations personnalisées
- Remarque : Le texte du lien s'affiche lorsque JavaScript est désactivé
- Cibles de sélection
- Grouper les cibles de focus
- Restaurer la mise au point
- Déplacer et effacer le focus