Flutter中的自定义货币文本字段

Flutter中的自定义货币文本字段,flutter,Flutter,我刚开始学习Flatter,我试图弄清楚用户如何在文本字段中输入金额,例如1234567,当用户键入时,应该是这样的: 1.00 12.00 123.00 1 234.00 12 345.00 123 456.00 1 234 567.00 我试着使用这个库:mask\u text\u input\u formatter,但我不知道怎么做。这是我的密码 var maskFormatter = new MaskTextInputFormatter( mask: '### ### #

我刚开始学习Flatter,我试图弄清楚用户如何在文本字段中输入金额,例如1234567,当用户键入时,应该是这样的:

1.00
12.00
123.00
1 234.00
12 345.00
123 456.00
1 234 567.00
我试着使用这个库:mask\u text\u input\u formatter,但我不知道怎么做。这是我的密码

 var maskFormatter = new MaskTextInputFormatter(
      mask: '### ### ###.00', filter: {"#": RegExp(r'[0-9]')});

TextFormField(
keyboardType: TextInputType.number,
inputFormatters: [maskFormatter],
onChanged: (value) {},
decoration: InputDecoration(
prefixIcon: Icon(Icons.monetization_on),
 hintText: 'Amount',
 border: OutlineInputBorder(),
 ),
   validator: (value) {
   if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
),

关于如何实现该结果的任何想法。

声明并初始化文本控制器,并将其分配给文本字段。在输入发生变化时更新其值

TextEditingController _moneyController = TextEditingController();
@override
void initState() { 
  super.initState();
  _moneyController.text = '.00';
}

TextFormField(
keyboardType: TextInputType.number,
inputFormatters: [maskFormatter],
onChanged: (value) {},
decoration: InputDecoration(
prefixIcon: Icon(Icons.monetization_on),
 hintText: 'Amount',
 border: OutlineInputBorder(),
 ),
   validator: (value) {
   if (value.isEmpty) {
return 'Please enter some text';
}
return null;
},
//added code here
controller: _moneyController,
),

在第四个示例中,为什么要在3位数后加空格
1234.00
你希望它是
1234.00
吗?@SunitGautam哦,是的,我错了。我编辑了我的问题您的代码面临什么问题?错误或意外输出?您可以使用控制器,并在textfield的on Changed属性中将“.00”附加到控制器。text…从未尝试过,但它似乎可以工作。@SunitGautam当我键入时,它不会添加最后两个零(“,00”)。我尝试了该代码,但它没有按预期工作!我将查看是否可以进行任何更改我确切地说不确定您想要什么,但我已编辑了我的答案以适应某些情况。。请让我知道这是否是您想要的!此代码只需将文本字段初始化为'00'。我想要的是,当用户键入金额时,我希望此'00'始终为be在他正在打字的东西旁边