简体   繁体   中英

Not show Next button in the soft keyboard

android studio 3.6

  @override
  Widget build(BuildContext context) {
    logger.d("build:");
    //String _errorMessage = null;
    return Scaffold(
        key: _scaffoldKey,
        appBar: new AppBar(
            centerTitle: true,
            title: new Text('Sign in',
                style: TextStyle(fontWeight: FontWeight.bold))),
        body: new Container(
            margin: const EdgeInsets.only(
                left: Constants.DEFAULT_MARGIN,
                right: Constants.DEFAULT_MARGIN),
            child: new Form(
                key: _formKey,
                child: new Column(children: [
                  new TextFormField(
                      decoration: new InputDecoration(hintText: 'Email'),
                      keyboardType: TextInputType.emailAddress,
                      onChanged: (value) {
                        setState(() {
                          _email = value;
                        });
                      }),
                  new TextFormField(
                      decoration: new InputDecoration(hintText: 'Password'),
                      obscureText: true,
                      onChanged: (value) {
                        setState(() {
                          _password = value;
                        });
                      })
                ]))));
  }

Here result:

在此处输入图片说明

The focus is on first field text (email). But on soft keyboard not show Next button (green button). Show Done button. Why?

You need to specify the textInputAction property to get that behaviour.

TextFormField(
   decoration: new InputDecoration(hintText: 'Email'),
   keyboardType: TextInputType.emailAddress,
   textInputAction: TextInputAction.next,
   onChanged: (value) {
      setState(() {
         _email = value;
      });
   }
)

Refer TextInputAction for all the available types

Just add textInputAction property and assign TextInputAction.next enum to it. This will display the next button on the keyboard. FocusScope will allow you to change the keyboard focus. Here I just used nextFocus() to change the keyboard focus to the next TextFormField when pressing the next button.

TextFormField( 
  ...
  textInputAction: TextInputAction.next,
  onFieldSubmitted: (value){
    FocusScope.of(context).nextFocus();
  }
  ...
)

For more textInputAction types, please have a look at this TextInputAction documentation

If you wanna see next button in the keyboard should

TextFormField( 
  ...
  textInputAction: TextInputAction.next,
  ...
)

But this alone will not focus on next input field.

Please check: https://medium.com/flutterpub/flutter-keyboard-actions-and-next-focus-field-3260dc4c694 or How to shift focus to next textfield in flutter?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM