gpt4 book ai didi

android - TextField controlled controller.addListener(() 在使用 controller.clear 后被多次调用

转载 作者:行者123 更新时间:2023-12-04 03:47:19 26 4
gpt4 key购买 nike

TextEditingController 的 addListener() 方法在执行 clear() 方法后被多次调用,只有在我们清除它时才会发生这种情况。

TextEditingController _pinPutController = TextEditingController();
@override
void initState() {
_pinPutController.addListener(() {
if (_pinPutController.text.length > 4) {
print("Hello world");
_pinPutController.clear();
}
});
}

当if语句中的条件为真时,主体被执行两次。

谁能帮我解决这个问题?

最佳答案

bool isClear = false;

TextField(
controller: _pinPutController,
decoration: InputDecoration(
hintText: "Enter a message",
suffixIcon: IconButton(
onPressed: () => (isClear)?_pinPutController.clear(): null,
icon: Icon(Icons.clear),
),
),
)

通过在其中添加isClear 来更改您编写的代码

TextEditingController _pinPutController = TextEditingController();
@override
void initState() {
_pinPutController.addListener(() {
if (_pinPutController.text.length > 4) {
setState(() {
isClear = true;
});
}
});
}

关于android - TextField controlled controller.addListener(() 在使用 controller.clear 后被多次调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64954405/

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