搭建网站大概多少钱,广东平台网站建设哪家好,企业免费网站系统,亚马逊关键词优化软件一、金额输入框智能输入数字、小数点且只能有俩位小数#xff0c;比如#xff1a; 0.01、0.1、100 二、这里可以通过继承已有的FilteringTextInputFormatter来实现会更方便些#xff0c;首先要设置的就是只允许输入数字、小数点 class AmountTextFieldFormatter extends Fil…一、金额输入框智能输入数字、小数点且只能有俩位小数比如 0.01、0.1、100 二、这里可以通过继承已有的FilteringTextInputFormatter来实现会更方便些首先要设置的就是只允许输入数字、小数点 class AmountTextFieldFormatter extends FilteringTextInputFormatter {final int digit;AmountTextFieldFormatter({this.digit 2,bool allow true,}) : super(RegExp([0-9.]), allow: allow);///省略部分代码...}三、上面这样就限定好了输入内容接下来就是进行输入的合法判断了
class AmountTextFieldFormatter extends FilteringTextInputFormatter {final int digit;String _oldText ;///省略构造函数overrideTextEditingValue formatEditUpdate(TextEditingValue oldValue,TextEditingValue newValue,) {final handlerValue super.formatEditUpdate(oldValue, newValue);String value handlerValue.text;int selectionIndex handlerValue.selection.end;///如果输入框内容为.直接将输入框赋值为0.if (value .) {value 0.;selectionIndex;}///判断小数位数if (_getValueDigit(value) digit || _pointCount(value) 1) {value _oldText;selectionIndex _oldText.length;}_oldText value;return TextEditingValue(text: value,selection: TextSelection.collapsed(offset: selectionIndex),);}///输入多个小数点的情况int _pointCount(String value) {int count 0;value.split().forEach((e) {if (e .) {count;}});return count;}///获取目前的小数位数int _getValueDigit(String value) {if (value.contains(.)) {return value.split(.)[1].length;} else {return -1;}}
}至此就完成了一个只能输入金额格式的输入限定了