关键代码

       keyboardType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter(RegExp("[0-9.]"), allow: true),
MyNumberTextInputFormatter(digit: 2),
],

TextField完整代码

 1                       TextField(
2 controller: _money,
3 keyboardType: TextInputType.number,
4 inputFormatters: [
5 FilteringTextInputFormatter(RegExp("[0-9.]"), allow: true),
6 MyNumberTextInputFormatter(digit: 2),
7 ],
8 textAlign: TextAlign.left,
9 style: TextStyle(fontSize: 25.sp),
10 decoration: InputDecoration(
11 border: InputBorder.none,
12 hintText: '本次最多可提现${alipayMsg['money']}元',
13 hintStyle: TextStyle(color: Color.fromRGBO(119, 119, 119, 1), height: 1),
14 ),
15 autofocus: false,
16 onChanged: (val) {
17 money = val;
18 },
19 )
MyNumberTextInputFormatter完整代码
 1 import 'package:flutter/services.dart';
2
3 class MyNumberTextInputFormatter extends TextInputFormatter {
4 static const defaultDouble = 0.001;
5
6 ///允许的小数位数,-1代表不限制位数
7 int digit;
8 MyNumberTextInputFormatter({this.digit = -1});
9 static double strToFloat(String str, [double defaultValue = defaultDouble]) {
10 try {
11 return double.parse(str);
12 } catch (e) {
13 return defaultValue;
14 }
15 }
16
17 ///获取目前的小数位数
18 static int getValueDigit(String value) {
19 if (value.contains(".")) {
20 return value.split(".")[1].length;
21 } else {
22 return -1;
23 }
24 }
25
26 @override
27 TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
28 String value = newValue.text;
29 int selectionIndex = newValue.selection.end;
30 if (value == ".") {
31 value = "0.";
32 selectionIndex++;
33 } else if (value == "-") {
34 value = "-";
35 selectionIndex++;
36 } else if (value != "" && value != defaultDouble.toString() && strToFloat(value, defaultDouble) == defaultDouble || getValueDigit(value) > digit) {
37 value = oldValue.text;
38 selectionIndex = oldValue.selection.end;
39 }
40 return new TextEditingValue(
41 text: value,
42 selection: new TextSelection.collapsed(offset: selectionIndex),
43 );
44 }
45 }
 
 

flutter-TextField文本输入框 限制 数字键盘、输入小数点后两位的更多相关文章

  1. 限制EditText只能输入小数点后两位

    设置EditText只能输入小数点后两位,在价格等有限制的输入时特别有效 TextWatcher textWatcher = new TextWatcher() { @Override public ...

  2. Vue 限制input输入 限数字 或 小数点后两位number

    Vue 限制input输入 小数点后两位number <input type="number" @keydown="handleInput2" place ...

  3. input输入框只能输入数字和 小数点后两位

    //input输入框只能输入数字和 小数点后两位 function num(obj,val){ obj.value = obj.value.replace(/[^\d.]/g,"" ...

  4. JS控制文本框只能输入数字 \保留小数点后两位

    <input type="text" placeholder="保留到小数点后两位" maxlength="200" onkeyup= ...

  5. Js验证 :只能输入数字和小数点 验证是否是数字 js取float型小数点后两位

    JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'') ...

  6. 控制input标签中只能输入数字以及小数点后两位

    js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...

  7. Javascript 智能输入数字且保留小数点后三位

    html: <input type="text" name="cprice" placeholder="最多保留小数点后三位" onk ...

  8. js控制input只能输入数字和小数点后两位,输入其他自动清除方法。

    工作中input='text'总会遇到要控制输入数字,或者是输入中文,输入电话,输入身份证号,邮箱等.今天我遇到的是要输入数字并且只能小数点后面两位的数字,还不能为负数.废话不多说上代码: <i ...

  9. input输入框只能输入正数和小数(保留小数点后两位)

    1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...

  10. 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)

    关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...

随机推荐

  1. 推送本地镜像到 Harbor

    1.harbor没有启动 https 我本地 安装 harbor 的时候由于没有使用证书,所以将 harbor.yml https 注释掉. 2.配置docker镜像地址 比如 我的 ip 为 192 ...

  2. Litctf2024-郑州轻工业大学第二届ctf-校内赛道wp

    战队:怎落笔都不对 最终成绩校内第4 MISC 1. 盯帧珍珠 打开文件发现是一个图片,放入 010 查看得文件头是 gif 格式 改为gif后缀得到一个GIF图,在下面这个网站分解,即可得到flag ...

  3. 【Kotlin】协程

    1 前言 ​ 相较于 C# 中的协程(详见 → [Unity3D]协同程序),Kotlin 中协程更灵活,难度更大. ​ 协程是一种并发设计模式,用于简化异步编程,它允许以顺序化的方式表达异步操作,避 ...

  4. jsp移动端和pc端页面判断及切换

    function goPAGE() { if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobi ...

  5. axios 取消请求 (2023-10-10更新)

    axios 文档 配置局部取消请求 这种相当于局部的取消请求,作用于单个请求中 import axios from 'axios' const source = axios.cancelToken.s ...

  6. Linux系统部署FineReport

    1. 概述 1.1 应用场景 帆软提供 Linux 操作系统下可直接安装使用的 FineReport 设计器,满足不同系统的用户的操作需求. 支持中标麒麟.银河麒麟.UOS 的 Linux 操作系统 ...

  7. 【前端】display:inline-block中间的间隙

    父元素宽度800px 两个并列子元素宽度设为50%,并且使用了display:inline-block 结果一运行,两个元素不在同一行? 我查审元素,两个子元素div的宽度都是400,也没有边框,边距 ...

  8. 工具大全-dirsearch探测Web目录

    dirsearch介绍 dirsearch是一款开源的.基于Python开发的命令行工具,主要用于对Web服务器进行目录和文件的扫描,以发现潜在的安全漏洞. dirsearch下载地址: https: ...

  9. Solon v3.0.5 发布!(Spring 生态可以退休了吗?)

    Solon 框架! 新一代,面向全场景的 Java 应用开发框架.从零开始构建(非 java-ee 架构),有灵活的接口规范与开放生态. 追求: 更快.更小.更简单 提倡: 克制.高效.开放.生态 有 ...

  10. Qt 5.15.6 发布

    一.前言 我们今天为商业许可证持有者发布了 Qt 5.15.6 LTS.作为补丁版本,Qt 5.15.6 没有添加任何新功能,但提供了错误修复和其他改进. 您可以使用维护工具在现有的在线安装中添加 Q ...