首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Flutter中清除Textfield并将焦点返回到同一个Textfield控制器自己的OnChange事件?

如何在Flutter中清除Textfield并将焦点返回到同一个Textfield控制器自己的OnChange事件?
EN

Stack Overflow用户
提问于 2020-09-09 14:20:15
回答 2查看 230关注 0票数 0

我在Flutter应用程序中有一个Textfield控制器,我希望在将该TextField值传递给该Textfield的OnChange事件后,清除该Textfield并在其中重新聚焦。

实际上,在我的应用程序中,我想使用外部设备连续扫描二维码,即连接到我们的android设备的二维码扫描仪。然后我想要显示每个新的扫描值到一个标签,并在扫描新的二维码后再次更新该值。

有没有人能帮我在Flutter中实现它?

EN

回答 2

Stack Overflow用户

发布于 2020-09-09 15:02:29

这非常简单,因为您只需要在更改时将文本设置为空即可。

代码语言:javascript
运行
复制
  TextEditingController _textEditingController = TextEditingController();

  TextField(
    controller: _textEditingController,
    onChanged: (value)=> _textEditingController.text = '',
  )

这是你想要的吗?如果这不是你想要的,请告诉我。

票数 0
EN

Stack Overflow用户

发布于 2020-12-04 02:49:08

我实现了所需的功能,但我对这种方法并不是很满意,我希望能以某种方式得到纠正。但是你绝对可以理解需要做什么。

代码语言:javascript
运行
复制
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));
  },
),
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63805789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档