flutter-TextField文本输入框 限制 数字键盘、输入小数点后两位
关键代码
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文本输入框 限制 数字键盘、输入小数点后两位的更多相关文章
- 限制EditText只能输入小数点后两位
设置EditText只能输入小数点后两位,在价格等有限制的输入时特别有效 TextWatcher textWatcher = new TextWatcher() { @Override public ...
- Vue 限制input输入 限数字 或 小数点后两位number
Vue 限制input输入 小数点后两位number <input type="number" @keydown="handleInput2" place ...
- input输入框只能输入数字和 小数点后两位
//input输入框只能输入数字和 小数点后两位 function num(obj,val){ obj.value = obj.value.replace(/[^\d.]/g,"" ...
- JS控制文本框只能输入数字 \保留小数点后两位
<input type="text" placeholder="保留到小数点后两位" maxlength="200" onkeyup= ...
- Js验证 :只能输入数字和小数点 验证是否是数字 js取float型小数点后两位
JS判断只能是数字和小数点 1.文本框只能输入数字代码(小数点也不能输入)<input onkeyup="this.value=this.value.replace(/\D/g,'') ...
- 控制input标签中只能输入数字以及小数点后两位
js 代码如下: /* 控制input标签中只能输入数字 和小数点后两位 */ function checkNum(obj) { //检查是否是非数字值 if (isNaN(obj.value)) { ...
- Javascript 智能输入数字且保留小数点后三位
html: <input type="text" name="cprice" placeholder="最多保留小数点后三位" onk ...
- js控制input只能输入数字和小数点后两位,输入其他自动清除方法。
工作中input='text'总会遇到要控制输入数字,或者是输入中文,输入电话,输入身份证号,邮箱等.今天我遇到的是要输入数字并且只能小数点后面两位的数字,还不能为负数.废话不多说上代码: <i ...
- input输入框只能输入正数和小数(保留小数点后两位)
1.限制只能输入正数和小数保留小数点后两位 1 <input type="number" id="txtNum" /> 2 3 <script ...
- 关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其他位数)
关于Oracle中查询的数字值的显示格式需要保留小数点后两位(或者三位,及其... 方法一:使用to_char的fm格式,即: to_char(round(data.amount,2),'FM9999 ...
随机推荐
- 从零打造基础HTTP服务器:揭秘背后的技术魔法-MiniTomcat
<从零打造基础HTTP服务器:揭秘背后的技术魔法-MiniTomcat> 嘿,各位技术发烧友们!今天咱们要一起踏上一段超级刺激的技术之旅,去揭开从零实现一个基础HTTP服务器的神秘面纱.这 ...
- 构建交互式聊天界面:react-chat-element 实战小计
react聊天组件库:react-chat-elements 需求场景:用户可以通过多元的用户交互方式,如文件.图片.声音以及文字等输入相关信息,AI给出对应的回答 react-chat-elemen ...
- uniapp打包apk后位置无法获取(简单)
生成云端证书 使用云端证书的SHA1值申请高德key包名自定义 打包前appid,地图key,云打包包名要和申请地图key的包名一样
- 【滑动窗口】codeforces 1290 A. Mind Control
题意 第一行输入一个正整数 \(T(1 \leq T \leq 1000)\),表示共有 \(T\) 组测试用例.对于每一组测试用例: 第一行输入三个正整数 \(n, m, k(1 \leq m \l ...
- Spring Boot整合Thrift RPC
[转载] https://coder4.com/homs_online/spring-boot/sb-thrift.html Spring Boot自动配置简介 在介绍RPC之前,我们先来学习下Spr ...
- 重拾 iptables
iptables 是一个常看常忘的命令,本文试图从应用的角度理解它 iptables 是运行在用户空间的应用软件,通过控制 Linux 内核 netfilter 模块,来管理网络数据包的处理和转发 一 ...
- 总结几个Qt版本的冷知识
Qt4.8.7是Qt4的终结版本,是Qt4系列版本中最稳定最经典的(很多嵌入式板子还是用Qt4.8),其实该版本是和Qt5.5差不多时间发布的.参考链接 https://www.qt.io/blog/ ...
- SpringBoot整合WebSocket实践
简介 先来看下维基百科WebSocket的简介: WebSocket是一种与HTTP不同的协议.两者都位于OSI模型的应用层,并且都依赖于传输层的TCP协议. 虽然它们不同,但是RFC 6455中规定 ...
- Type of the default value for 'data' prop must be a function的解决方法
Type of the default value for 'data' prop must be a function的解决方法 问题现象 在写形如prop: {type: Array; defau ...
- [转]worldwind在线加载google地图,或者基于墨卡托投影的切片地图
package gis1; import java.net.MalformedURLException; import java.net.URL; import gov.nasa.worldwind. ...