关键代码

       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. 关于PageHiOffice插件在win10登录桌面前提示的解决

    win10笔记本开机,在未登录桌面时,总是有PageHiOffice插件已过期的提示. 使用process monitor 的Enable Boot Logging功能进行监视,重启后,再次打开pro ...

  2. Codeforces Round 881 (Div

    E. Tracking Segments 给定初始长度为n,且全为0的序列a,然后给出m个线段,如果一个线段中1的个数严格大于0的个数,那么该线段称为一个漂亮线段,现在给出q次操作,每次操作使得序列a ...

  3. 【邮件伪造】SPF与DKIM验证原理及实战解析(上)

    0x01 前言 大家好,我是VoltCary 本篇文章是系列邮件安全专题的第一篇,主要帮助大家掌握邮件安全的基础知识. 基础内容包括: SMTP协议 邮件安全验证原理与过程 SPF验证与DKIM签名验 ...

  4. cryptohack RSA部分

    1.Salty: 此题为rsa加密中e=1的情况,由于\(ed(mod phi)=1\),所以d自然是等于1的,不用分解n就解出了d from Crypto.Util.number import lo ...

  5. electron postinstall$ node install.js报错

    本来以为是文件路径错了执行失败,手动去执行了下install.js,还是报错,但是不一样是连接超时 试了几种办法,简单直接就是如下方法 1:从项目node_modules中找到electron下的in ...

  6. Pytest接口自动化测试框架Python自动化测试开发

    一.引言 在软件开发过程中,接口测试是确保软件各个组件之间数据传输和功能交互正常工作的重要环节.通过接口测试,可以提高软件的整体质量和稳定性.Pytest是一个流行的Python自动化测试框架,提供了 ...

  7. Qt数据库应用3-数据打印到pdf

    一.前言 自从数据可以导出到xls,又有客户提出了不同的需求,比如既然可以将数据导出到xls,那是否可以导出到pdf文件呢?因为xls打开以后用户可以修改数据造假之类的,而pdf默认是不可编辑的,除非 ...

  8. Typora设置自定义脚本上传图片

    搭建图床服务 这里利用CloudFlare搭建免费的图床服务 cf-image-hosting 部署Pages $ git clone https://github.com/ifyour/cf-ima ...

  9. URL中文转换成类似%E6%96%97%E7%A0%B4(url编码)格式

    要将汉字转换成编码格式拼接成请求,没怎么搞过,一番查找,最终确定使用C# 里的WebUtility using System.Net; var a = WebUtility.UrlEncode(&qu ...

  10. 开源即时通讯IM框架 MobileIMSDK v6.5 发布

    一.更新内容简介 本次更新为次要版本更新,进行了bug修复和优化升级(更新历史详见:码云 Release Notes.Github Release Notes). MobileIMSDK 可能是市面上 ...