我有一个带有focusnode的textformfield:
TextFormField(
key: Key('login-username-field-key'),
controller: loginTextController,
textInputAction: TextInputAction.next,
keyboardType: TextInputType.text,
onFieldSubmitted: (term){
_changeFocusField(context, _loginFocus, _passwordFocus);
},
focusNode: _loginFocus,
decoration: InputDecoration(
labelText: AppLocalizations.of(context).loginFieldUsername
),
),
,然后:
// Check that text field initially is not focused
final TextFormField textField = tester.widget(find.byKey(Key('login-username-field-key')));
expect(textField.focusNode.hasFocus, isFalse);
但是,从文档中,我看到TextFormfield没有" focusnode"属性(例如Textfield.focusnode.hasfocus(。
那么如何检查该行为?
ps,我的意思是我们可以使用焦点插图侦听器,但我不想仅仅用于测试目的。它应该只是字段。
您应该添加侦听器,您可以在其中检查textformfield的状态。方法hasFocus
返回对还是错误。
@override
void initState() {
super.initState();
_loginFocus.addListener(_onFocusChange);
}
void _onFocusChange(){
debugPrint("Focus: "+_focus.hasFocus.toString());
}