gpt4 book ai didi

flutter - 如何检测用户已停止在 TextField 中输入?

转载 作者:IT王子 更新时间:2023-10-29 07:02:39 24 4
gpt4 key购买 nike

我正在使用 TextField,在其下有 onChanged 函数

我正在调用我的代码,但现在的问题是每次输入或删除新单词时代码都会执行。

我正在寻找的是如何识别用户何时停止输入

意味着添加一些延迟或类似的东西。

我也尝试使用 Future.delayed 函数添加 delay,但该函数也执行了 n 次。

TextField(
controller: textController,
onChanged: (val) {
if (textController.text.length > 3) {
Future.delayed(Duration(milliseconds: 450), () {
//code here
});
}
setState(() {});
},
)

最佳答案

感谢@pskink

我能够实现我正在寻找的功能。

在您的 pubspec.yaml 中导入 stream_transform 包

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(
controller: textController,
onChanged: (val) {
streamController.add(val);
},
)

关于flutter - 如何检测用户已停止在 TextField 中输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56823531/

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