如何在 TextFormFields 中只接受数字?

How to accept only numbers in TextFormFields?

我只想接受 TextFormField 中的数字。我设计了一个 TextFormField 来接受 phone 数字。我已经更改了键盘类型。

keyboardType: TextInputType.phone,

但是,它也可以接受特殊符号或者也可以粘贴其他输入。 Keyboard screenshots

在您的 TextFormField 中添加:

inputFormatters: [
   FilteringTextInputFormatter.allow(
        RegExp("[0-9]")),
   ],

您还可以修改 RegExp 以支持任何类型的输入字符。

尝试使用输入格式化程序

import 'package:flutter/src/services/text_formatter.dart';

TextFormField(
      keyboardType: TextInputType.phone,
      inputFormatters:
      [
        FilteringTextInputFormatter.digitsOnly
      ]
    )

试试下面的代码,参考FilteringTextInputFormatter

导入下面的库

import 'package:flutter/services.dart';

您的小部件:

    TextFormField(
    keyboardType: TextInputType.number,
    inputFormatters: [FilteringTextInputFormatter.digitsOnly],
    //you can used below formater also
    /*  inputFormatters: [
          FilteringTextInputFormatter.allow(
            RegExp("[0-9]"),
          ),
        ],*/
  ),

您可以使用 FilteringTextInputFormatter。

 TextField(
            keyboardType: TextInputType.number,
            inputFormatters: <TextInputFormatter>[
              FilteringTextInputFormatter.digitsOnly
            ], // Only numbers can be entered
          ),

简单地说,这可行:

keyboardType: TextInputType.number,