keyboard - flutter 数字键盘没有完成按钮

标签 keyboard flutter textinput

我在我的 TextField 中使用 TextInputType.number。但是键盘内没有任何完成或下一步按钮。TextInputAction.done 在数字键盘上不起作用。我应该为此做什么?

最佳答案

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

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

关于keyboard - flutter 数字键盘没有完成按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52244180/

相关文章:

java - 如何聆听键盘上按下更多按钮的声音?

flutter - 我试图将object.parameter传递到自定义小部件中并失败

flutter - 如何使用 Riverpod 处理身份验证 token 和 GraphQL 客户端?

c - "Push-to-make"键盘按键的风格使用

android - 键盘隐藏时显示 View ,反之亦然

c - GTK 无法识别按键释放事件

css - 是否可以设置文本输入的样式以填充其父级的宽度?

flutter - 自定义卡片形状 Flutter SDK

html - 在 jQuery Mobile 中保留文本输入值

javascript - 将插入符号移动到文本输入字段的末尾并使末尾可见