gpt4 book ai didi

聚焦 TextField 时触发 Flutter TextEditingController 监听器

转载 作者:行者123 更新时间:2023-12-03 13:29:59 60 4
gpt4 key购买 nike

我有一个 TextField,它有一个 Controller ,它有一个更改监听器。像这样:

final TextEditingController _oneController = TextEditingController();
  @override
void initState() {
super.initState();
_oneController.addListener(_listener);
}
TextField(
controller: _oneController,
),

哪里 _listener是一个函数,它将调度我的表单已被编辑的事件。

这工作正常,但只要您关注 TextField,它就会触发此监听器运行,即使未对字段中的文本进行任何更改。

当 TextField 进入焦点时,有没有办法阻止我的听众被调用?当我的 TextField 中的文本没有更改时,我不希望我的监听器被调用。

最佳答案

将先前键入的文本存储在名为 prev 的变量中。 (最初是 prev = "")。
每次 _listener 被调用时,检查 _oneController.text == prev 是否​​相同,如果它们相同,则无需调用该函数。
如果 prev 与文本不同,则执行函数 _listener。

_listener(){
if(prev != _oneController.text){
prev = _oneController.text;
//your rest of the code, whatever u wanna do.
}
}

关于聚焦 TextField 时触发 Flutter TextEditingController 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56641032/

60 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com