• [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),
        );
      }
    }
  • 相关阅读:
    smarty基础
    smarty变量
    Google的Python代码格式化工具YAPF详解
    性能监控工具YourKit
    Scala学习笔记2
    Scala介绍
    线段树
    字符串分割方法
    Trie树
    Scala 学习笔记
  • 原文地址:https://www.cnblogs.com/yangyxd/p/9639588.html
Copyright © 2020-2023  润新知