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

时间:2019-11-28 21:59:50

标签: flutter dart

嗨,我怎么知道用户是使用TextEditingController进行删除还是写作?

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

final TextEditingController _textEditingController = TextEditingController();

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

_textFieldChanging() {}

2 个答案:

答案 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;
  });
}