如何在 Flutter 中设置焦点到特定的输入文本字段

Aka*_*han 7 dart flutter

我的扑动应用程序中有一些TextFormField字段。这是这些字段的控制器。

TextEditingController nameCtrl = TextEditingController();
TextEditingController idCtrl = TextEditingController();
TextEditingController nodeCtrl = TextEditingController();
TextEditingController unitCodeCtrl = TextEditingController();
Run Code Online (Sandbox Code Playgroud)

我想unitCodeCtrl在事件触发时(单击按钮时)以编程方式将焦点设置到文本字段,但不知道如何做到这一点。

...,
onPressed:(){
  //what can i do for set focus to unitcode text field?
}
Run Code Online (Sandbox Code Playgroud)

Hem*_*iya 16

首先像这样声明一个焦点节点

final FocusNode unitCodeCtrlFocusNode = FocusNode();
Run Code Online (Sandbox Code Playgroud)

然后将此焦点节点分配给该文本字段

TextFormField(
     controller: unitCodeCtrl,
     focusNode: unitCodeCtrlFocusNode,
)
Run Code Online (Sandbox Code Playgroud)

在按钮上单击调用下面的方法,这将设置焦点

onPressed:(){
  FocusScope.of(context).requestFocus(unitCodeCtrlFocusNode);
}
Run Code Online (Sandbox Code Playgroud)

或者

onPressed:(){
  unitCodeCtrlFocusNode.requestFocus();
}
Run Code Online (Sandbox Code Playgroud)