我在Flutter应用程序中有一个Textfield控制器,我希望在将该TextField值传递给该Textfield的OnChange事件后,清除该Textfield并在其中重新聚焦。
实际上,在我的应用程序中,我想使用外部设备连续扫描二维码,即连接到我们的android设备的二维码扫描仪。然后我想要显示每个新的扫描值到一个标签,并在扫描新的二维码后再次更新该值。
有没有人能帮我在Flutter中实现它?
发布于 2020-09-09 15:02:29
这非常简单,因为您只需要在更改时将文本设置为空即可。
TextEditingController _textEditingController = TextEditingController();
TextField(
controller: _textEditingController,
onChanged: (value)=> _textEditingController.text = '',
)
这是你想要的吗?如果这不是你想要的,请告诉我。
发布于 2020-12-04 02:49:08
我实现了所需的功能,但我对这种方法并不是很满意,我希望能以某种方式得到纠正。但是你绝对可以理解需要做什么。
var _currentFieldFocusNode = FocusNode();
var _textEditingController = TextEditingController();
TextFormField(
focusNode: _currentFieldFocusNode,
controller: _textEditingController,
onFieldSubmitted: (newValue) async {
setState(
() {
//do anything with new value
_textEditingController.clear();
},
);
await Future.delayed(
Duration(milliseconds: 200))
.then((value) => FocusScope.of(context)
.requestFocus(
_currentFieldFocusNode));
},
),
https://stackoverflow.com/questions/63805789
复制相似问题