【问题标题】:How to set TextFormField dynamically?如何动态设置 TextFormField?
【发布时间】:2018-06-20 11:34:14
【问题描述】:

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

【问题讨论】:

  • 请将代码添加到您的问题中,以展示您尝试完成的工作、尝试的内容以及失败的地方。 StackOverflow 不是收费的代码猴服务。
  • 食谱中有一个专门用于表单的会话:flutter.io/cookbook
  • @GünterZöchbauer 我明白你的意思。实际上我的问题是我想从联系人列表中选择联系人号码并在 TextFormField 中设置。

标签: flutter


【解决方案1】:

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

【讨论】:

  • 请不要忘记处理文本编辑控制器:@override void dispose() { _myTextEditingController.dispose(); super.dispose(); }
【解决方案2】:

您可以使用 StatefulWidget 来调整您的TextFormFieldinitialValue property

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),
  ]);
}

setState 中,我正在为 presetText 分配一个新值,并且将调用 build(带有 更新 initialValue) 因为setState

【讨论】:

    猜你喜欢
    • 2021-06-25
    • 2021-10-13
    • 1970-01-01
    • 2010-09-13
    • 2020-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    相关资源
    最近更新 更多