将设置值颤动到文本字段

时间:2019-03-04 16:39:43

标签: dart flutter

我是新手。我有一个包含联系人列表(姓名,电话,地址)的项目,当用户点击联系人时,我要将他发送到编辑表单,我想用联系人数据填充表单。 我正在使用文本字段作为输入,并使用例如widget.contact.data ['name']通过小部件获取数据。 我找不到这个问题的答案。

1 个答案:

答案 0 :(得分:2)

有两种方法可以从TextField访问文本,如Flutter的docs所示。

第一个是通过onChanged回调,该回调的参数是当前文本。

TextField(
  onChanged: (text) {
    // do what you want with the text
  },
);

要对文本进行更高级的处理(包括从build()方法外部访问文本),可以使用TextEditingController

final _controller = TextEditingController();

然后您可以将其链接到您的TextField:

TextField(
  // other parameters
  controller: _controller,
);

别忘了处理它!

@override
void dispose() {
  // other dispose methods
  _controller.dispose();
  super.dispose();
}

现在,您可以通过访问_controller.text的值或对其进行修改来设置或获取文本。例如:

获取:print(_controller.text);

设置:_controller.text = 'newText' // now the TextField will have 'newText' written

或者您可以使用addListener收听更改,因此无论何时更新文本,都会调用您选择的功能:

@override
void initState() {
    super.initState();
    _controller.addListener(_handleText);
    // other code here
}

_handleText() {
   // do what you want with the text, for example:
   print(_controller.text);
}