在Flutter中,我有一个下拉列表(我们可以调用maxim字段)来选择总长度。然后在索引字段中,我们可以添加具有相同下拉长度的值。当我在索引字段中添加值时,我需要添加“.000”。
我尝试使用masked package但我无法连接索引字段值。
代码类似于
int inputMaxValue=1;
var inputIndexValue = new MaskedTextController(mask: inputMaxValue.text+'.000');
返回
只能在初始化程序中访问静态成员
¿任何人都知道我能解决这个问题吗?
我认为在你的情况下MaskedTextController
是不必要的,只需将int inputMaxValue
更改为double inputMaxValue
并可能添加.toStringAsFixed(3)
以在点之后获得3位小数。
EG
double inputMaxValue = 1.0;
String inputIndexValue = "${inputMaxValue.toStringAsFixed(3)}";
但是,如果要保留flutter_masked_text
包,则应避免为mask
属性使用动态字符串。错误Only static members can be accessed in initializers
似乎是因为你在类中声明了被屏蔽的控制器变量,而不是它的封闭方法(例如initState
)。
在MaskedTextController
的情况下,mask
属性只能使用静态字符串。
例如这是我用来格式化电话号码字段:
MaskedTextController(mask: "(000) 000-0000")
也许NumberFormat可以提供帮助
import 'package:intl/intl.dart';
final price = 123;
final formater = NumberFormat("#,##0.000");
print(formater.format(price));
输出:123.00