在 Flutter 中将焦点滑动到 TextField
Slide focus to TextField in Flutter
这几天我一直在学习flutter,在开发我的应用程序时遇到了一个问题。所以我有一个包含所有基本输入字段的基本表单,在用户单击提交按钮后,应用程序检查文本字段的有效性。如果输入错误,应用程序会将焦点移回文本字段。
如何将焦点移回文本字段?
var focusNode = FocusNode();
var textField = TextField(focusNode: focusNode);
FocusScope.of(context).requestFocus(focusNode);
// or
focusNode.requestFocus();
另见
TextField(
autofocus: true,
);
使用
FocusScope.of(context).previousFocus();
Column(
children: [
TextField(...), // 1st TextField
TextField(...), // 2nd TextField
RaisedButton(
onPressed: () => FocusScope.of(context).previousFocus(), // This is what you need
child: Text("Go back"),
),
],
)
FocusNode name_focus = FocusNode();
TextField(
controller: name_Controller,
focusNode: name_focus,
decoration: InputDecoration(
errorText: name_validate ? 'Enter Name' : null,
labelStyle:
TextStyle(color: HexColor(HexColor.gray_text)),
labelText: "Name",
border: OutlineInputBorder(),
enabledBorder: OutlineInputBorder(
borderSide:
BorderSide(color: HexColor(HexColor.gray))),
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: HexColor(HexColor.gray))),
),
),
检查验证名称是否为空自动滚动我的页面进行显示
if(name_Controller.text.isEmpty){
name_validate=true;
name_focus.requestFocus();
}
这几天我一直在学习flutter,在开发我的应用程序时遇到了一个问题。所以我有一个包含所有基本输入字段的基本表单,在用户单击提交按钮后,应用程序检查文本字段的有效性。如果输入错误,应用程序会将焦点移回文本字段。
如何将焦点移回文本字段?
var focusNode = FocusNode();
var textField = TextField(focusNode: focusNode);
FocusScope.of(context).requestFocus(focusNode);
// or
focusNode.requestFocus();
另见
TextField(
autofocus: true,
);
使用
FocusScope.of(context).previousFocus();
Column(
children: [
TextField(...), // 1st TextField
TextField(...), // 2nd TextField
RaisedButton(
onPressed: () => FocusScope.of(context).previousFocus(), // This is what you need
child: Text("Go back"),
),
],
)
FocusNode name_focus = FocusNode();
TextField(
controller: name_Controller,
focusNode: name_focus,
decoration: InputDecoration(
errorText: name_validate ? 'Enter Name' : null,
labelStyle:
TextStyle(color: HexColor(HexColor.gray_text)),
labelText: "Name",
border: OutlineInputBorder(),
enabledBorder: OutlineInputBorder(
borderSide:
BorderSide(color: HexColor(HexColor.gray))),
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: HexColor(HexColor.gray))),
),
),
检查验证名称是否为空自动滚动我的页面进行显示
if(name_Controller.text.isEmpty){
name_validate=true;
name_focus.requestFocus();
}