flutter number keyboard doesn't have done button

Viewed 5679

I'm using TextInputType.number in my TextField. But there is not any done or next button inside keyboard.TextInputAction.done isn’t working on number keyboard. What should I do for that ?

1 Answers

I've just created a package for add basic actions to the current keyboards .

enter image description here

You can take a look here :

https://pub.dartlang.org/packages/keyboard_actions

Sample code:

        import  'package:flutter/material.dart';
        import  'package:keyboard_actions/keyboard_actions.dart';

         //...
          FocusNode _nodeText1 = FocusNode();
          FocusNode _nodeText2 = FocusNode();
          FocusNode _nodeText3 = FocusNode();
          FocusNode _nodeText4 = FocusNode();
          FocusNode _nodeText5 = FocusNode();

         @override
          Widget build(BuildContext context) {
            return Scaffold(
              appBar: AppBar(
                title: Text("Keyboard Actions Sample"),
              ),
              body: FormKeyboardActions(
                keyboardActionsPlatform: KeyboardActionsPlatform.ALL, //optional
                keyboardBarColor: Colors.grey, //optional
                nextFocus: true, //optional
                actions: [
                  KeyboardAction(
                    focusNode: _nodeText1,
                  ),
                  KeyboardAction(
                    focusNode: _nodeText2,
                    closeWidget: IconButton(
                      icon: Icon(Icons.close),
                      onPressed: () {},
                    ),
                  ),
                  KeyboardAction(
                    focusNode: _nodeText3,
                    onTapAction: () {
                      showDialog(
                          context: context,
                          builder: (context) {
                            return AlertDialog(
                              content: Text("Custom Action"),
                              actions: <Widget>[
                                FlatButton(
                                  child: Text("OK"),
                                  onPressed: () => Navigator.of(context).pop(),
                                )
                              ],
                            );
                          });
                    },
                  ),
                  KeyboardAction(
                    focusNode: _nodeText4,
                    displayCloseWidget: false,
                  ),
                  KeyboardAction(
                    focusNode: _nodeText5,
                    closeWidget: Padding(
                      padding: EdgeInsets.all(5.0),
                      child: Text("CLOSE"),
                    ),
                  ),
                ],
                child: Padding(
                  padding: const EdgeInsets.all(15.0),
                  child: SingleChildScrollView(
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.stretch,
                      children: <Widget>[
                        TextField(
                          keyboardType: TextInputType.number,
                          focusNode: _nodeText1,
                          decoration: InputDecoration(
                            hintText: "Input Number",
                          ),
                        ),
                        TextField(
                          keyboardType: TextInputType.text,
                          focusNode: _nodeText2,
                          decoration: InputDecoration(
                            hintText: "Input Text with Custom Close Widget",
                          ),
                        ),
                        TextField(
                          keyboardType: TextInputType.number,
                          focusNode: _nodeText3,
                          decoration: InputDecoration(
                            hintText: "Input Number with Custom Action",
                          ),
                        ),
                        TextField(
                          keyboardType: TextInputType.text,
                          focusNode: _nodeText4,
                          decoration: InputDecoration(
                            hintText: "Input Text without Close Widget",
                          ),
                        ),
                        TextField(
                          keyboardType: TextInputType.number,
                          focusNode: _nodeText5,
                          decoration: InputDecoration(
                            hintText: "Input Number with Custom Close Widget",
                          ),
                        ),
                      ],
                    ),
                  ),
                ),
              ),
            );
          }
Related