如何动态设置TextFormField?

san*_*ngh 5 flutter

我正在使用 flutter,我想在 TextFormField 中动态设置文本(字符串值),这意味着通过按按钮设置值。

小智 5

使用文本编辑控制器。然后将其分配给 TextFormField,然后使用控制器从您想要的任何位置分配新数据。如果您希望初始数据在 initState() 函数中为其分配一些值,也可以在有状态小部件上使用它。_textEditingController.text = "1";


cre*_*not 3

您可以使用 aStatefulWidget调整.initialValueTextFormField

class TextFieldChanger extends StatefulWidget {
  @override
  _TextFieldChangerState createState() => _TextFieldChangerState();
}

class _TextFieldChangerState extends State<TextFieldChanger> {
  String presetText;

  void _onPressed() {
    setState(() {
      presetText = 'updated text';
    });
  }

  @override
  Widget build(BuildContext context) => Column(children: [
    TextFormField(initialValue: presetText),
    RawMaterialButton(onPressed: _onPressed),
  ]);
}
Run Code Online (Sandbox Code Playgroud)

在 中setState,我正在为 分配一个新值,presetText并且由于 而build将被调用(使用更新后的 ) 。initialValuesetState