【问题标题】:flutter format currency in texformfieldtexformfield中的颤振格式货币
【发布时间】:2021-12-29 03:36:36
【问题描述】:

我有一个 Flutter 应用程序,它使用 textformfield 接受金额作为输入。我想在 textformfield 中格式化输入,以便输入的任何内容都可以格式化为带有千位分隔符逗号的货币 copmlete。我尝试过使用 intl 包号格式化程序,但我能做的就是将它打印到命令行。

这是目前的样子

这就是我想要的样子

这是文本字段代码

  TextEditingController currencyControler = TextEditingController();

  String? amount;

 TextFormField(
              controller: currencyControler,
              keyboardType: TextInputType.number,
              validator: (value) {
                if (value!.isEmpty) {
                  return 'Please enter an amount';
                }
                return null;
              },
              onSaved: (String? value) {
                amount = value;
              },
              decoration: InputDecoration(
                icon: const Icon(Icons.money_outlined),
                labelText: "Amount",
                hintText: 'Enter an amount',
                border: OutlineInputBorder(
                  borderRadius: BorderRadius.circular(8.0),
                ),
              ),
            )

如何格式化输入,以便逗号分隔符显示为正在输入的任何数字

【问题讨论】:

    标签: flutter flutter-textformfield


    【解决方案1】:

    试试下面的代码希望它对你有帮助。使用intl包here进行数字形成

    你的职能:

      TextEditingController currencyControler = TextEditingController(); 
      String formNum(String s) {
        return NumberFormat.decimalPattern().format(
          int.parse(s),
        );
      }
    

    您的小部件:

       TextFormField(
                  controller: currencyControler,
                  decoration: InputDecoration(
                      border: OutlineInputBorder(),
                      prefixIcon: Icon(
                        Icons.money,
                      )),
                  keyboardType: TextInputType.number,
                  onChanged: (string) {
                    string = '${formNum(
                      string.replaceAll(',', ''),
                    )}';
                    currencyControler.value = TextEditingValue(
                      text: string,
                      selection: TextSelection.collapsed(
                        offset: string.length,
                      ),
                    );
                  },
                ),
               
    

    您的结果屏幕->

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-24
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2018-04-01
      相关资源
      最近更新 更多