Форма дротика, используйте TextInputActions
Я реализовал вход firebase flutter и взял код отсюда.
class _EmailPasswordFormState extends State<_EmailPasswordForm> {
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
final TextEditingController _emailController = TextEditingController();
final TextEditingController _passwordController = TextEditingController();
bool _success;
String _userEmail;
@override
Widget build(BuildContext context) {
return Form(
key: _formKey,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Container(
child: const Text('Test sign in with email and password'),
padding: const EdgeInsets.all(16),
alignment: Alignment.center,
),
TextFormField(
controller: _emailController,
decoration: const InputDecoration(labelText: 'Email'),
validator: (String value) {
if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
),
TextFormField(
controller: _passwordController,
decoration: const InputDecoration(labelText: 'Password'),
validator: (String value) {
if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
),
Container(
padding: const EdgeInsets.symmetric(vertical: 16.0),
alignment: Alignment.center,
child: RaisedButton(
onPressed: () async {
if (_formKey.currentState.validate()) {
_signInWithEmailAndPassword();
}
},
child: const Text('Submit'),
),
),
Container(
alignment: Alignment.center,
padding: const EdgeInsets.symmetric(horizontal: 16),
child: Text(
_success == null
? ''
: (_success
? 'Successfully signed in ' + _userEmail
: 'Sign in failed'),
style: TextStyle(color: Colors.red),
),
)
],
),
);
}
я добавил textInputAction: TextInputAction.next
а также textInputAction: TextInputAction.go
к двум TextFormField
с. Дизайн клавиатуры меняется, но при нажатии на нее ничего не происходит. Я хочу, чтобы кнопка "Далее" работала после того, как она была в первом поле TextFormField, а кнопка отправки была нажата при нажатии кнопки "перейти" во втором поле TextFormField.
Что мне нужно для этого? Спасибо!