在Flutter项目中,我需要听取TextFormField中的输入文本并执行某些操作,尤其是当用户在此文件中放置一些字符(例如空格)或请求焦点时。当发生此类事件时,我需要修改字段的值。我知道有一个属性,called controller但是在这种情况下我不知道如何使用它。
called controller
先感谢您。
您可以指定一个控制器和焦点节点,然后向其添加侦听器以监视更改。
例如:
定义控制器和焦点节点
TextEditingController _controller = new TextEditingController(); FocusNode _textFocus = new FocusNode();
定义监听器功能
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 ); }
将listner添加到控制器和focusnode处 initState
initState
// you can have different listner functions if you wish _controller.addListener(onChange); _textFocus.addListener(onChange);
然后您可以将其用作
new TextFormField( controller: _controller, focusNode: _textFocus, )
希望有帮助!