Flutter 中仅包含数字的 TextFormField

2023-12-21

我正在开发一个需要输入价格的应用程序¥因此没有小数位。 如果我们使用keyboardType: TextInputType.numberWithOptions()我们可以获得数字键盘输入。 如果我们使用validator: (input) { }我们可以检查输入是否有效,但我们无法阻止它。

问题是我们可以保存不需要验证的草稿。 因此,我们最好一开始就只允许数字输入。

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 https://docs.flutter.io/flutter/services/TextInputFormatter-class.html

颤振1.12之后,WhitelistingTextInputFormatter已被弃用并且您正在运行较新的版本,请使用:

FilteringTextInputFormatter.digitsOnly

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter 中仅包含数字的 TextFormField 的相关文章

  • 如何根据有效(@mentions)和所有主题标签更改文本颜色?

    我想在文本中用不同颜色显示主题标签和有效提及 我得到了这段代码的帮助 该代码仅适用于主题标签 RichText convertHashtag String text List
  • 带有 Firebase 通知的 Flutter Web - subscribeToTopic

    我想在我的 flutter web 应用程序中接收 firebase 通知 我知道 firebase messaging 包不可用于网络 但我已经管理配置我的应用程序以获取令牌 在网络应用程序位于后台时接收并显示消息 并在应用程序位于前台时
  • Flutter - 名称为 [DEFAULT] 的 FirebaseApp 不存在

    我正在使用 firebase 身份验证系统和 Firestore 开发一个 flutter 应用程序 我工作了3个月 之前没有遇到过这个错误 现在我在 Play 商店上发布了我的应用程序 并且我发现使用模拟器的调试版本也出现此错误 我认为已
  • 如何在颤动中从图像选择器中裁剪图像?

    我想允许用户裁剪他从图像选择器中选择的图像并保存它 类似于在 Whatsapp 上上传个人资料图片 我怎样才能在颤振中做到这一点 示例图片 您可以使用这2个flutter库来实现这一点 图像选择器 图像裁剪器 图像选择器使用iOS和Andr
  • Flutter 使用 RichText 填空

    我几乎完成了我的应用程序的填空实现 但不幸的是我不断遇到布局问题 然而 当我不断解决问题时 我几乎已经完成了 这是到目前为止的代码 RichText text TextSpan text dummy style TextStyle colo
  • Flutter 2.0 appbar 后退按钮如果包含 endDrawer 就会消失

    我刚刚将 flutter 更新到 2 0 我意识到如果 appbar 还包含 endDrawer 所有后退按钮都会消失 带有 endDrawer 的应用栏 https i stack imgur com X2jaf png 我试图摆脱 en
  • 未安装 Visual Studio;这对于 Windows 开发是必要的

    My 颤振医生 https docs flutter dev get started install windows run flutter doctor是说 Visual Studio develop for Windows X Visu
  • Dart - 何时在集合上使用 Collection-For-In 与 .Map()

    collection for in 操作和 map 方法都可以返回对先前集合中的元素的一些操作 是否有任何理由更喜欢使用其中一种而不是另一种 var myList 1 2 3 var alteredList1 for int i in my
  • 检查 Future 是否完成

    在 m3 之前 您可以使用 completer future isComplete 检查未来是否已完成 但这似乎已经消失了 有替代品吗 或者我需要自己保存它 似乎在 CompleterImpl 内部仍然有一个字段 isComplete 但它
  • 使用不包含 Bloc 的上下文调用 BlocProvider.of() - 即使它包含

    首先 我确实知道 BLoC 是如何运作的 它背后的想法 我知道两者之间的区别BlocProvider and BlocProvider value 构造函数 为简单起见 我的应用程序有 3 个页面 其中有一个小部件树 如下所示 App gt
  • 谷歌字体包是否会下载设备上的字体?

    在我的 flutter Android 应用程序中 第一次启动时 该应用程序显示默认字体 一秒钟后它更改为我从 google fonts flutter 包中使用的字体 我想我的问题是 应用程序第一次启动时是否会立即下载字体 如果是 可以使
  • 扑。是否可以更改 TextFormField errorText 填充?

    我在用着TextFormField with OutlineInputBorder 我需要里面的文本在右侧和左侧有填充 为此 我正在使用 contentPadding const EdgeInsets symmetric vertical
  • 如何将 Dart 代码迁移到不可空 (NNBD)?

    我有一个之前编写的 Flutter 应用程序Dart 中引入了 null 安全性 https stackoverflow com questions 60068435 what is nullability in dart non null
  • Flutter Scaffold Appbar 不显示后退按钮

    我的课程没有在 AppBar 中显示后退按钮 已经尝试将 this automaticallyImplyLeading true import package carros pages carro carro dart import pac
  • Flutter:如何使用 AnimatedContainer 和扩展列?

    假设我们有 3 个孩子Column Flexible flex 1 child Container color Colors red Flexible flex 3 child Container color Colors yellow F
  • 使用 EditableText 进行 Flutter

    我正在尝试弄清楚如何在 Flutter 中使用 TextEditor 我有 卡片编辑器 基本上我希望能够处理相当于一段文本的内容 new EditableText autofocus true maxLines null backgroun
  • 在 Flutter 中从 Play 商店获取产品时应用内购买崩溃

    我在安装和实施后遇到问题应用内购买插件 https pub dev packages in app purchaseFlutter 团队提供 到目前为止我做了什么 在 Play 商店中添加了 2 个可见且活跃的产品 提交了用于 alpha
  • dart中解析对象(不支持的操作:无法添加到固定长度列表)

    我有一个用户对象 当用户登录 注册时 该对象保存到云 Firestore 数据库中 因此 当用户登录时 将从数据库中检索用户对象 并且一切正常 直到我尝试对列表 usersProject 执行 添加 操作 Add the new proje
  • 向上滚动时固定项目

    所以我有以下屏幕 我正在寻找一种方法 使得当用户向上滚动时 包含进度条和这 4 个数据字段 ItemHeader 的小部件将向上滚动 但搜索容器 SearchTextField 将被固定 到顶部 当然 当用户向下滚动时 它应该重新出现 我找
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件

随机推荐

  • 将用户输入从 NodeJS 发送到 shell 脚本

    我有这个 NodeJS 脚本 var util require util process require child process ls process exec test sh ls stdout on data function da
  • Mapbox GL JS:如果单击标记,则忽略地图单击事件

    我在地图上有一个标记 我想在单击它时更改其状态 并在单击地图上的其他位置时将其更改回来 问题是map on click console log 单击标记时也会触发 我只想查看标记单击事件 因为地图单击会调用状态回滚
  • 使用 Jersey 上传文件:FormDataContentDisposition 为 null

    我正在尝试使用 Jersey 实现文件上传 所以我遵循了这个示例 http www mkyong com webservices jax rs file upload example in jersey http www mkyong co
  • Moment js 将毫秒转换为日期和时间

    我的当前时间以毫秒为单位 1454521239279 如何将其转换为 03 FEB 2016 和时间 11 10 PM 矩解析器 moment 1454521239279 format DD MMM YYYY hh mm a parse i
  • 致命:无法获取凭证存储锁:文件存在

    我正在使用 git scm 并尝试推送到存储库 这样做后 我收到了以下消息 fatal unable to get credential storage lock File exists 虽然推送最终确实推送成功 但我想知道为什么会出现这个
  • 如何将 FlowDocument 中的表格放在一起?

    我想如果我将表格放在段落中 我可以使用 KeepTogether 属性将表格保持在一起 该表格用于报告的总计 客户不希望它们分成两页 想象一下 表中有 5 行 我快要疯了 不知道下一步该尝试什么 最后一行代码 myFlowDocument
  • (Laravel) 基于用户输入的接口动态依赖注入

    我目前在架构和实现方面面临着一个非常有趣的困境 我有一个名为ServiceInterface其中有一个方法称为execute 然后我对该接口有两种不同的实现 Service1 and Service2 它正确地实现了execute方法 我有
  • 是否有任何设计模式可以避免嵌套开关盒?

    我见过类似的线程 但是 不确定如何准确地将解决方案应用到我的案例中 我的问题是我有一组用例 可以说 A B C 当输入传递 2个用例是输入 是列出的用例中的任何2个时 我需要执行某些命令 例如 switch input1 case A br
  • AWS 步骤和批量动态命令

    我有一个带有单个作业定义的批处理作业 该作业定义根据环境命令选项上的参数执行 原值为 param2 XXX 但我需要根据 Step Functions 的输入参数使其保持动态 param2 param2 YYY 我无法将 Step Func
  • facet_grid 中的自由色阶

    假设我有以下数据框 Set seed for RNG set seed 33550336 Create toy data frame loc x lt c a 1 b 2 c 3 loc y lt c a 3 b 2 c 1 scaling
  • Imagemagick - 更改 Heroku 上的 policy.xml

    我正在尝试使用 Imagemagick 在 Heroku 上通过 https 访问图像 如何更改 Heroku 上的策略 在 policy xml 中 Heroku 于 2016 年 5 月进行了 ImageMagick 安全更新 http
  • WordPress 禁用 /admin 重定向到 /wp-admin

    我的网站是用wordpress 4 5 2 对于wordpress控制面板 可以正常登录myweb com wp admin目录 但我有另一个控制面板 目录中有其他应用程序myweb com admin 问题是每当我尝试登录myweb co
  • 通过输入框和 jquery 过滤选择列表

    我想知道是否可以获得一些帮助 通过 jquery 使用输入框过滤选择列表 这是我的 js 的样子 但它似乎不起作用 我猜这是因为选择列表中的选项不可隐藏
  • 我可以直接在表示层中使用域对象吗

    我最初有以下设置 表示层使用 gt 通过 WCF 生成的服务代理 gt 实际服务组件 代理生成于其中 通过 IIS 托管 gt 域层 业务逻辑 gt DAL 最初就是这样 但发现服务和 DAL 也应该访问域层 现在我有一个场景 在表示层中
  • 因为我无法在顶层运行等待,所以我必须将其放入异步函数中 - 为什么我可以直接调用该异步函数?

    我有一个简短的 Node js 脚本 我需要另一个包并从中调用异步函数 然后想要打印返回值 如果我简单地await来自顶层的返回值 然后我会得到一个错误 说我只能使用await在异步函数本身内部 所以显然要走的路是这样的 async fun
  • 在 boost::signals2 中混合使用 boost 智能指针和 C++11 智能指针

    我有一个使用的应用程序boost signals2组件之间进行通信 我试图通过使用它的自动连接管理功能slot type track weak ptr 问题 在我的整个计划中 std shared ptr用来 track期望一个boost
  • Android编程-屏幕分辨率

    我是 Android 编程新手 我见过运行 Android 的不同屏幕分辨率的手机 如何创建一个适用于所有 Android 设备的应用程序 而应用程序视图不会出现任何失真 简短的答案是调整所有布局项目的大小dip dip是缩写Density
  • iOS 增强现实,带有指南针和位置

    我正在尝试开发一个迷你 Around Me 例如使用相机 指南针和位置 我想在屏幕上显示地点的图像 目前我已经有了指南针的位置和方向 我想知道如何确定我要显示的位置的位置 感谢您的帮助 一旦有了相对距离和方位 您就可以使用以下算法从同一坐标
  • 在 PHP 中防止竞争条件的最可靠和安全的方法

    我需要在 PHP 中使用互斥体或信号量 这让我感到害怕 澄清一下 我并不害怕编写正确同步的无死锁代码 也不害怕并发编程的危险 而是害怕 PHP 处理边缘情况的能力 快速背景知识 编写位于用户和第 3 方信用卡网关之间的信用卡处理程序接口 需
  • Flutter 中仅包含数字的 TextFormField

    我正在开发一个需要输入价格的应用程序 因此没有小数位 如果我们使用keyboardType TextInputType numberWithOptions 我们可以获得数字键盘输入 如果我们使用validator input 我们可以检查输