在Flutter 中,TextField 是一个用来输入 文本的 控件。使用起来也很简单,比如这样,就可以轻松实现一个 TextField 来接收用户的输入内容。
TextField(
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'Contact Name',
),
)
但是 Flutter 是声明式 UI 编程,我们无法像 Android 里那样拿到 TextField 的实例,类似这样(textFieldInstance.text
)获取到内部的输入内容。
不过,办法还是有的,只是略有不同而已。
onChange 监听,显式声明变量方式(不推荐)
这种方式的思路大概如下
通过外部显式声明一个String 变量 textFieldText 利用 TextField
的 onChanged 回调接收变化后的输入内容
TextField(
decoration: const InputDecoration(
border: OutlineInputBorder(),
labelText: 'Contact Name',
),
onChanged: (text) {
textFieldText = text;
},
)
但是这种实现方式有着两个明显的问题
如果 TextField 带有初始文本,没有经过任何