我正在开发一款应用程序,它需要输入¥的价格,因此没有小数点.

问题是我们可以保存一份不需要验证的草案.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Digits Only',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            TextFormField(
              autovalidate: true,
              keyboardType: TextInputType.number,
              validator: (input) {
                final isDigitsOnly = int.tryParse(input);
                return isDigitsOnly == null
                    ? 'Input needs to be digits only'
                    : null;
              },
            ),
          ],
        ),
      ),
    );
  }
}

有没有办法阻止某些文本输入而只允许数字输入?

推荐答案

是的,可以使用inputFormatters属性并添加WhitelistingTextInputFormatter.digitsOnly表达式

  import 'package:flutter/services.dart';


  TextFormField(
          ...
          inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
        )

您可以在这里找到更多信息:https://docs.flutter.io/flutter/services/TextInputFormatter-class.html

在Ffltter 1.12、WhitelistingTextInputFormatter被弃用后,您正在运行较新的版本,请使用:

FilteringTextInputFormatter.digitsOnly

https://api.flutter.dev/flutter/services/FilteringTextInputFormatter-class.html

Flutter相关问答推荐

获取屏幕大小的滚动视图与动态大小?

如何在默认情况下隐藏appBar并在向下滚动时显示它- Flutter

为什么Build_Runner的输出为0?

如何将assets资源 实体类型转换为文件类型?

为什么当我使用Riverpod更新状态时,列表会被刷新?

Flutter在CustomPainter的右上角和左上角添加了2条曲线

处理 flutter/dart 模型中的空值

Flutter 未处理的异常 - 对 null 值使用 Null 判断运算符

尽管设置了对齐方式,如何对齐列中的行?

允许文本小部件在容器之间溢出

忽略异步函数上的 context.mounted 访问 linting 错误是否安全?

setState 方法有时有效,有时无效

Flutter:为什么我的 listTile colored颜色 被容器 colored颜色 覆盖了?

Getx Flutter 在更新值时抛出空错误

如何制作两个显示相关内容且可编辑的文本字段?

Flutter 中父容器顶部的 Gridview 间距额外区域

Flutter:如何将列表转换为字符串?

Flutter Web App 未启动:脚本的 MIME 类型不受支持

使用 mocktail 包进行单元测试时,类型Null不是Future类型的子类型

在 Flutter 中,如何使用文本字段和方形图像进行行布局