Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 将焦点滑动到颤振中的文本字段_Dart_Flutter - Fatal编程技术网

Dart 将焦点滑动到颤振中的文本字段

Dart 将焦点滑动到颤振中的文本字段,dart,flutter,Dart,Flutter,过去几天我一直在学习颤振,在开发我的应用程序时遇到了一个问题。因此,我有一个包含所有基本输入字段的基本表单,用户单击提交按钮后,应用程序会检查文本字段的有效性。如果输入错误,应用程序会将焦点移回文本字段 如何将焦点移回文本字段 var focusNode = FocusNode(); var textField = TextField(focusNode: focusNode); FocusScope.of(context).requestFocus(focusNode); // or fo

过去几天我一直在学习颤振,在开发我的应用程序时遇到了一个问题。因此,我有一个包含所有基本输入字段的基本表单,用户单击提交按钮后,应用程序会检查文本字段的有效性。如果输入错误,应用程序会将焦点移回文本字段

如何将焦点移回文本字段

var focusNode = FocusNode();
var textField = TextField(focusNode: focusNode);

FocusScope.of(context).requestFocus(focusNode);
// or 
focusNode.requestFocus();
另见

使用

FocusScope.of(context.previousFocus()



这不是一个解决方案,因为这会自动聚焦文本字段,但不一定是OP要求的。因为他想重新聚焦另一个文本字段。这可能不是OP问题的解决方案,但这正是我想要的。如果你想做相反的事情,即从文本字段中移除焦点,简单的方法是调用:
FocusScope.of(context.requestFocus)(new FocusNode())//移除焦点
@kosiara BartoszKosarzycki现在有一个专门的
取消焦点
方法
FocusScope.of(context.unfocus()请注意,为了防止内存泄漏,您必须在小部件的dispose方法中处置focusNode
@override void dispose(){focusNode.dispose();super.dispose();}
@SamanSattari我认为一般来说没有必要这样做。你认为这是为什么?@GünterZöchbauer有关更多信息,请查看此链接:
 TextField(
      autofocus: true,
);
Column(
  children: [
    TextField(...), // 1st TextField
    TextField(...), // 2nd TextField
    RaisedButton(
      onPressed: () => FocusScope.of(context).previousFocus(), // This is what you need
      child: Text("Go back"),
    ),
  ],
)