J'ai un TextEditingController
où, si un utilisateur clique sur un bouton, il contient des informations. Je n'arrive pas à comprendre comment changer le texte à l'intérieur d'un Textfield
ou TextFormField
. Y a-t-il une solution?
Changez simplement la propriété text
TextField(
controller: txt,
),
RaisedButton(onPressed: () {
txt.text = "My Stringt";
}),
tandis que txt
est juste un TextEditingController
var txt = TextEditingController();
_mytexteditingcontroller.value = new TextEditingController.fromValue(new TextEditingValue(text: "My String")).value;
Cela semble fonctionner si quelqu'un a une meilleure solution, n'hésitez pas à me le faire savoir.
Vous pouvez utiliser le contrôleur d'édition de texte pour manipuler la valeur dans un champ de texte.
var textController = new TextEditingController();
Créez maintenant un nouveau champ de texte et définissez textController
comme contrôleur du champ de texte, comme indiqué ci-dessous.
new TextField(controller: textController)
Créez maintenant une RaisedButton
n’importe où dans votre code et définissez le texte souhaité dans la méthode onPressed
de la RaisedButton
.
new RaisedButton(
onPressed: () {
setState(() {
textController.text = "New text";
});
}
),
En utilisant cette solution, vous pourrez aussi mettre le curseur à la fin du nouveau texte.
final TextEditingController _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(child: TextField(controller: _controller)),
floatingActionButton: FloatingActionButton(
onPressed: () {
_controller.text = "Hello";
// this changes cursor position
_controller.selection = TextSelection.fromPosition(TextPosition(offset: _controller.text.length));
setState(() {});
},
),
);
}