博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Flutter] TextField 中只允许输入合法的小数
阅读量:6367 次
发布时间:2019-06-23

本文共 1010 字,大约阅读时间需要 3 分钟。

的Flutter的TextField中,我们可以通过设置inputFormatters来过滤和限制输入的内容。

下面是一个自定义的 TextInputFormatter,可以限制用户只能输入有效的整数和小数。

 

// 只允许输入小数class _UsNumberTextInputFormatter extends TextInputFormatter {  static const defaultDouble = 0.001;  static double strToFloat(String str, [double defaultValue = defaultDouble]) {    try {      return double.parse(str);    } catch (e) {      return defaultValue;    }  }  @override  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {    String value = newValue.text;    int selectionIndex = newValue.selection.end;    if (value == ".") {      value = "0.";      selectionIndex++;    } else if (value != "" && value != defaultDouble.toString() && strToFloat(value, defaultDouble) == defaultDouble) {      value = oldValue.text;      selectionIndex = oldValue.selection.end;    }    return new TextEditingValue(      text: value,      selection: new TextSelection.collapsed(offset: selectionIndex),    );  }}

 

转载于:https://www.cnblogs.com/yangyxd/p/9639588.html

你可能感兴趣的文章
vue proxy匹配规则
查看>>
线上应用故障排查之一:高CPU占用
查看>>
Extend Volume 操作 - 每天5分钟玩转 OpenStack(56)
查看>>
IronPython教程
查看>>
squid via检测转发循环
查看>>
计算分页
查看>>
iptables 做nat路由器脚本
查看>>
数据结构(C语言版)第三章:栈和队列
查看>>
Stopping and/or Restarting an embedded Jetty in...
查看>>
Oracle存储过程中的数据集输入参数
查看>>
vsftp 配置
查看>>
VCSA中配置时间和时区,实测至6.5适用
查看>>
高并发IM系统架构优化实践
查看>>
产品经理教你玩转阿里云负载均衡SLB系列(一):快速入门--什么是负载均衡
查看>>
有关linux--进程组、会话、守护进程详解
查看>>
我的友情链接
查看>>
monkeyrunner运行Python脚本来检查apk渠道和验证是否可以调用微信
查看>>
github获得SSH Key解决Permission denied (publickey)问题
查看>>
用java代码编写Oracle存储过程
查看>>
APACHE转发
查看>>