Dans certains flux 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 automatiquement placer le curseur dans le champ de saisie de la recherche.
Utiliser FocusRequester
Pour demander explicitement la sélection :
- Créez et mémorisez une instance
FocusRequester:val focusRequester = remember { FocusRequester() }. - Associez le
FocusRequesterau composable cible à l'aide du modificateurfocusRequester. - Appelez
requestFocus()dans un rappel d'événement (tel queonClick) ou une portée 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 la sélection initiale 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 revenez d'un autre écran, vous pouvez également associer focusRestorer() aux conteneurs parents pour rétablir automatiquement la sélection 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 mise au point
- Grouper les cibles de focus
- Rétablir la mise au point
- Déplacer et effacer la sélection