Flutter TextInputType.number 不强制使用数字键盘

Mil*_*son 5 flutter

我不明白我在这里缺少什么。我将 TextInputType 设置为数字,并且仍然可以输入任何字母、特殊字符甚至是表情符号。我也试过让孩子成为 TextInputType.numberWithOptions() 小部件,它打开相同的键盘。这只是我手机上的错误吗?P20 Pro

      Row(
          children: <Widget>[
            Text('TextInputType.number:'),
            Flexible(
                child: TextField(
              maxLength: 3,
              keyboardType: TextInputType.number,
            )),
          ],
        )
Run Code Online (Sandbox Code Playgroud)

应该只有数字

anm*_*ail 13

仅启用数字 - 您需要添加 -inputFormatters:也添加 - keyboardType:不会帮助独立。

代码:

TextField(
          maxLength: 3,
          inputFormatters: <TextInputFormatter>[
            WhitelistingTextInputFormatter.digitsOnly,
          ],
          keyboardType: TextInputType.number,
        ),
Run Code Online (Sandbox Code Playgroud)


Ken*_*rwa 12

从 Flutter 2.0 开始,anmol.majhail 的答案中的上述方法已被弃用。Flutter 建议从 转变WhitelistingTextInputFormatter.*FilteringTextInputFormatter.*。因此,为了在 Flutter 2.0 应用程序中实现相同的效果,请遵循下面代码摘录中的示例。

TextField(
  maxLength: 3,
  inputFormatters: <TextInputFormatter>[
    FilteringTextInputFormatter.digitsOnly,
  ],
  keyboardType: TextInputType.number,
),
Run Code Online (Sandbox Code Playgroud)