Как изменить значение внутри флаттера текстового поля? - PullRequest
0 голосов
/ 02 июля 2018

У меня есть TextEditingController, где, если пользователь нажимает кнопку, он заполняется информацией. Я не могу понять, как изменить текст внутри Textfield или TextFormField. Есть ли решение?

Ответы [ 4 ]

0 голосов
/ 27 июля 2019

Используя это решение, вы также сможете поставить курсор в конце нового текста.

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(() {});
      },
    ),
  );
}
0 голосов
/ 02 июля 2018

Просто измените свойство text

    TextField(
      controller: txt,
    ),
    RaisedButton(onPressed: () {
        txt.text = "My Stringt";
    }),

, в то время как txt - это просто TextEditingController

  var txt = TextEditingController();
0 голосов
/ 02 июля 2018

Вы можете использовать контроллер редактирования текста, чтобы манипулировать значением внутри текстового поля.

var textController = new TextEditingController();

Теперь создайте новое текстовое поле и установите textController в качестве контроллера для текстового поля, как показано ниже.

 new TextField(controller: textController)

Теперь создайте RaisedButton в любом месте вашего кода и установите нужный текст в методе onPressed RaisedButton.

new RaisedButton(
       onPressed: () {
          setState(() {
             textController.text = "New text";
          });
       }
    ),
0 голосов
/ 02 июля 2018
_mytexteditingcontroller.value = new TextEditingController.fromValue(new TextEditingValue(text: "My String")).value;

Кажется, это работает, если у кого-то есть лучший способ, пожалуйста, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...