Android emulator:配置如何按Tab键前进到下一个TextFormField,以便更轻松地进行人机界面测试?
(在网络上,作为一名以键盘为中心的开发人员,我被宠坏了,因为我无法按键盘上的Tab键将表单焦点提前到下一个字段。) 在开发/测试我的第一款颤振应用程序时,我还没有弄清楚如何在Android模拟器中实现这一点。我必须手动移动鼠标以将焦点移到下一个表单字段Android emulator:配置如何按Tab键前进到下一个TextFormField,以便更轻松地进行人机界面测试?,android,flutter,android-emulator,ios-simulator,Android,Flutter,Android Emulator,Ios Simulator,(在网络上,作为一名以键盘为中心的开发人员,我被宠坏了,因为我无法按键盘上的Tab键将表单焦点提前到下一个字段。) 在开发/测试我的第一款颤振应用程序时,我还没有弄清楚如何在Android模拟器中实现这一点。我必须手动移动鼠标以将焦点移到下一个表单字段 我的直觉是,每个人在做第一个颤振形态时都有这种挫折感,必须有一个简单的设置或简单的方法来实现它?是的,有一种简单的方法可以进入下一个领域。如果您使用的是TextFormField小部件,则它具有focusNode属性,有助于创建可使用onfild
我的直觉是,每个人在做第一个颤振形态时都有这种挫折感,必须有一个简单的设置或简单的方法来实现它?是的,有一种简单的方法可以进入下一个领域。如果您使用的是
TextFormField
小部件,则它具有focusNode
属性,有助于创建可使用onfildsubmitted
回调配置的焦点节点。如果使用仿真器键盘切换焦点,还可以使用textinputation
属性,当焦点从一个字段移动到另一个字段时,可以根据需要将该属性设置为next
,done
。下面是一个示例用例:
我在一列中有两个TextFormField
小部件,分别是hintText
First
和Second
。当用户点击第一个字段时,仿真器键盘打开并显示next
按钮。点击它会将光标焦点移动到第二个字段。下面是相同的工作代码示例:
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextFormField(
decoration: InputDecoration(
hintText: 'First'
),
textInputAction: TextInputAction.next,
focusNode: _firstNode,
onFieldSubmitted: (String val) {
_firstNode.unfocus();
FocusScope.of(context).requestFocus(_secondNode);
},
),
TextFormField(
decoration: InputDecoration(
hintText: 'Second'
),
focusNode: _secondNode,
)
],
)
)
主体:中心(
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
TextFormField(
装饰:输入装饰(
hintText:“第一”
),
textInputAction:textInputAction.next,
focusNode:_firstNode,
onFieldSubmitted:(字符串val){
_firstNode.unfocus();
FocusScope.of(context.requestFocus)(\u secondNode);
},
),
TextFormField(
装饰:输入装饰(
hintText:“第二”
),
focusNode:_secondNode,
)
],
)
)
textInputAction:textInputAction.next
使键盘按钮显示next
按钮。同样,您可以为最后一个字段设置textInputAction:textInputAction.done
。
\u firstNode
是我们定义为FocusNode\u firstNode=FocusNode()的焦点节点代码>与第二个节点相同
然后在onfielsubmitted
中,我们通过将\u secondNode
传递给它,从第一个字段移除焦点,并使用FocusScope
请求聚焦到下一个字段。因此,当用户在第一个字段中输入输入并点击键盘上的next
按钮时,焦点将切换到第二个字段
另外,如果您不想依靠键盘上的“下一步”按钮来切换焦点,可以使用与上述逻辑类似的onChanged
回调。唯一的区别是,此回调不适用于TextFormField
小部件,您必须使用TextField
小部件
希望这能回答你的问题