我怎么知道用户是在删除还是在写入



嗨,我怎么知道用户是删除还是使用文本编辑控制器编写?

我只想在写作时采取行动?

final TextEditingController _textEditingController = TextEditingController();
@override
void initState() {
super.initState();
_textEditingController.addListener(_textFieldChanging);
}
_textFieldChanging() {}

我认为您不需要侦听器来完成此任务。您可以使用onChanged.

int textLength = 0;
String theChange='';
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
Center(
child: TextField(
onChanged: (value) {
theChange = textLength < value.length ? 'Adding':'deleteing';
textLength = value.length;
setState(() {
});
},
),
),
Text(theChange)
],
);
}

您可以分配一个保存当前文本的全局变量

String _text = '';

然后,您每次都可以在侦听器中比较它们

void _textFieldChanging() {
String newText = _textEditingController.text;
if(newText.length > _text.length) {
// The person is writing
} else if(newText.length < _text.length) {
// The person is deleting
} else {
// no change in length
}
setState(() {
_text = newText;
});
}

最新更新