当用户在填写表单时点击enter按钮时,有没有一种方法可以调用submit按钮。下面是我的表单代码:
@override
Widget build(BuildContext context) {
String _email;
return AlertDialog(
title: Text('Password Reset'),
content: Form(
key: _formKey,
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
TextFormField(
decoration: InputDecoration(
hintText: 'Email',
labelText: 'Email',
),
autofocus: true,
maxLength: 30,
validator: (value) {
if (value.isEmpty) {
return 'Email is required';
}
return null;
},
onSaved: (input) => _email = input,
),
],
),
),
actions: [
RaisedButton(
onPressed: () async {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
var result = await auth.sendPasswordResetEmail(_email);
print(result);
Navigator.of(context).pop();
}
},
child: Text('Reset'),
)
],
);
}
3条答案
按热度按时间w1jd8yoj1#
对于一个
TextFormField
,处理这个的属性应该是onFieldSubmitted
。你可以把代码从你的onPressed
或者RaiseButton
复制到这个。完整的示例以codepen here的形式提供。
你可能也对
RawKeyboardListener
感兴趣,但是它不能识别enter
键,但是可以监听其他键,如Shift
,CapsLock
等。yeotifhr2#
根据需要使用
TextFormField
构造函数的onEditingComplete
或onSubmitted
参数。bgibtngc3#
检查文本表单字段是否将
textInputAction
设置为TextInputAction.done
或TextInputAction.go