首页 > 解决方案 > Flutter TextField controller.clear() 将多次调用 onChanged

问题描述

这是代码:

class MyApp extends StatelessWidget {
  TextEditingController _controller = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'test',
      home: Scaffold(
        appBar: AppBar(
          title: Text('test'),
        ),
        body: Center(
          child: TextField(
            controller: _controller,
            onChanged: (text){
              print('>>>>>>>>>>flutter onChanged text=${text} _controller.text=${_controller.text}');
              if(text.length==4){
                _controller.clear();
              }
            },
          ),
        ),
      ),
    );
  }
}

这是日志 在此处输入图像描述

在调用 controler.clear() 之后,调用了 onChange()。而且价值没有改变

标签: flutter

解决方案


尝试使用

_controller.text = "";

代替_controller.clear();


推荐阅读