Flutter里的TextEditingController
TextEditingController 是一个可以控制 TextField 和 TextFormField 的控制器。它主要有以下功能:
- 读取和修改 TextField/TextFormField 的文字内容。通过 controller.text 可以获取文字,通过 controller.text = ‘新文字’ 可以设置文字。
- 监听 TextField/TextFormField 的文字变化。通过 controller.addListener() 可以监听 controller.text 的变化,从而更新其他 UI 或执行某些操作。
- 管理 TextField/TextFormField 的光标和选择位置。通过 controller.selection 和 controller.selection = 可以获取和设置光标位置。
- 控制 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 = '新内容';