颤振数字键盘未完成按钮

时间:2018-09-09 11:42:12

标签: keyboard flutter textinput

我在TextField中使用TextInputType.number。但是键盘上没有完成或下一步按钮。TextInputAction.done在数字键盘上不起作用。我该怎么办?

1 个答案:

答案 0 :(得分:2)

我刚刚创建了一个用于向当前键盘添加基本操作的软件包。

enter image description here

您可以在这里看看:

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

示例代码:

        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",
                          ),
                        ),
                      ],
                    ),
                  ),
                ),
              ),
            );
          }