[Flutter] TextField 中只允许输入合法的小数
Posted yangyxd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Flutter] TextField 中只允许输入合法的小数相关的知识,希望对你有一定的参考价值。
的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), ); } }
以上是关于[Flutter] TextField 中只允许输入合法的小数的主要内容,如果未能解决你的问题,请参考以下文章
flutter TextField 限制只允许输入数字 小数点
Flutter Windows:如果将 TextField 放在 AlertDialog 中,则它不允许空间
flutter TextField 限制只允许输入数字 小数点