Flutter里的TextEditingController
TextEditingController 是一个可以控制 TextField 和 TextFormField 的控制器。它主要有以下功能:
1.读取和修改 TextField/TextFormField 的文字内容。通过 controller.text 可以获取文字,通过 controller.text = ‘新文字’ 可以设置文字。
2.监听 TextField/TextFormField 的文字变化。通过 controller.addListener() 可以监听 controller.text 的变化,从而更新其他 UI 或执行某些操作。
3.管理 TextField/TextFormField 的光标和选择位置。通过 controller.selection 和 controller.selection = 可以获取和设置光标位置。
4.控制 TextField/TextFormField 的焦点。通过 controller.requestFocus() 可以请求获得焦点,通过 controller.unfocus() 可以放弃焦点。
举例
TextEditingController _controller = TextEditingController(); TextField( controller: _controller, //引入 ) // 监听文字变化 _controller.addListener(() { print(_controller.text); }); // 获取TextField内容 String content = _controller.text; // 设置TextField内容 _controller.text = '新内容';