Flutter 如何在颤振中清除Textfield并在其自身的OnChange事件中将焦点恢复到同一Textfield控制器?

Flutter 如何在颤振中清除Textfield并在其自身的OnChange事件中将焦点恢复到同一Textfield控制器?,flutter,dart,textfield,onchange,Flutter,Dart,Textfield,Onchange,我在Flatter应用程序中有一个Textfield控制器,我想清除该Textfield,并在该Textfield自身的OnChange事件上传递该Textfield的值后重新聚焦 实际上,在我的应用程序中,我想使用外部设备(即连接到android设备的二维码扫描仪)连续扫描二维码。然后我想将每个新的扫描值显示到一个标签上,并在扫描新的二维码后再次更新该值 任何人都可以帮助我在Flutter中实现它吗?这很容易,因为您只需在更改时将文本设置回空即可 TextEditingController

我在Flatter应用程序中有一个Textfield控制器,我想清除该Textfield,并在该Textfield自身的OnChange事件上传递该Textfield的值后重新聚焦

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


任何人都可以帮助我在Flutter中实现它吗?

这很容易,因为您只需在更改时将文本设置回空即可

  TextEditingController _textEditingController = TextEditingController();

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

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

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

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));
  },
),

我希望你能分享你的尝试和问题,给我一个更好的建议。Thnx供评论,这个解决方案只是清除了文本字段,但并没有让焦点再次回到它。