J'ai deux widgets textFormField. Une fois que l'utilisateur a participé au premier champ de texte, je voudrais concentrer le prochain champ de texte. Existe-t-il un moyen de le faire à Flutter? Actuellement, le bouton terminé ne fait que fermer le clavier. Je devinais que la classe focusNode pourrait être la réponse à cela, mais je ne sais pas vraiment comment cela fonctionne. Quelqu'un a-t-il de bons exemples de classe focusNode? Merci d'avance.
Oui, FocusNode et le onFieldSubmitted
d'un TextFormField sont probablement la voie à suivre.
FocusScope.of (contexte) .requestFocus (focusNode);
Voici un exemple qui peut vous aider:
FocusNode textSecondFocusNode = new FocusNode();
TextFormField textFirst = new TextFormField(
onFieldSubmitted: (String value) {
FocusScope.of(context).requestFocus(textSecondFocusNode);
},
);
TextFormField textSecond = new TextFormField(
focusNode: textSecondFocusNode,
);
// render textFirst and textSecond where you want
Vous pouvez également vouloir déclencher FocusScope.of()
à partir d'un bouton plutôt que sur onFieldSubmitted, mais nous espérons que l'exemple ci-dessus vous donne suffisamment de contexte pour construire une solution appropriée pour votre cas d'utilisation.
Il existe une méthode similaire à celle d'Android.
Ajouter
textInputAction
paramètre au widget TextFormField, puis ajoutez la propriété en tant que;
TextInputAction.next