嗨,我怎么知道用户是使用TextEditingController进行删除还是写作?
我只想在写作时采取行动?
final TextEditingController _textEditingController = TextEditingController();
@override
void initState() {
super.initState();
_textEditingController.addListener(_textFieldChanging);
}
_textFieldChanging() {}
答案 0 :(得分:1)
我认为您不需要侦听器来执行此任务。您可以使用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)
],
);
}
答案 1 :(得分:0)
您可以分配一个包含当前文本的全局变量
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;
});
}