我正在使用TextField
哪个onChanged
功能
我正在打电话给我的代码,但是现在的问题是,每次输入或删除一个新单词时,代码都会执行。
我要寻找的是如何识别用户何时停止键入。
意味着增加一些延迟或类似的东西。
我试过delay
也使用Future.delayed
函数添加,但该函数也被执行了n次。
TextField(
controller: textController,
onChanged: (val) {
if (textController.text.length > 3) {
Future.delayed(Duration(milliseconds: 450), () {
//code here
});
}
setState(() {});
},
)
感谢@pskink
我能够实现自己想要的功能。
将stream_transform包导入到您的 pubspec.yaml
stream_transform: ^0.0.19
import 'package:stream_transform/stream_transform.dart';
StreamController<String> streamController = StreamController();
@override
void initState() {
streamController.stream
.transform(debounce(Duration(milliseconds: 400)))
.listen((s) => _validateValues());
super.initState();
}
//function I am using to perform some logic
_validateValues() {
if (textController.text.length > 3) {
// code here
}else{
// some other code here
}
}
TextField代码
TextField(
controller: textController,
onChanged: (val) {
streamController.add(val);
},
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句