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"),
),
],
)