Flutter 中获取 TextField 中 text 内容

在Flutter声明式UI编程中,直接获取TextField内容并不像Android那样直接。本文介绍了两种方法:不推荐的onChange监听和推荐的TextEditingController方式。onChange监听方式存在无法获取初始文本和暴露变量风险的问题。而TextEditingController则是官方推荐的解决方案,它允许安全地连接TextField并获取输入内容。
摘要由CSDN通过智能技术生成

在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 带有初始文本,没有经过任何

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值