在flutter的TextFormField中管理事件

myn*_*eis 10 listener textfield dart flutter

在Flutter项目中,我需要收听TextFormField中的输入文本并执行某些操作,尤其是当用户在此字段中放置某个字符(例如空格)或请求焦点时.当这种事件发生时,我需要修改字段的值.我知道有一个属性,called controller但我不知道在这种情况下如何使用它.

先感谢您.

Hem*_*Raj 33

您可以指定控制器和焦点节点,然后向其添加侦听器以监视更改.

例如:

定义控制器和焦点节点

TextEditingController _controller = new TextEditingController();

FocusNode _textFocus = new FocusNode();
Run Code Online (Sandbox Code Playgroud)

定义监听器功能

void onChange(){
  String text = _controller.text;
  bool hasFocus = _textFocus.hasFocus;
  //do your text transforming
  _controller.text = newText;
  _controller.selection = new TextSelection(
                                baseOffset: newText.length, 
                                extentOffset: newText.length
                          );
}
Run Code Online (Sandbox Code Playgroud)

将listner添加到控制器并将焦点定位到 initState

// you can have different listner functions if you wish
_controller.addListener(onChange); 
_textFocus.addListener(onChange);
Run Code Online (Sandbox Code Playgroud)

然后你可以用它

new TextFormField(
  controller: _controller,
  focusNode: _textFocus,
)
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!