Android Studio 我想限制用户放在文本字段中的数量值(Flutter)

piztneat  于 2022-12-19  发布在  Android
关注(0)|答案(3)|浏览(115)

我希望用户在我的文本域中输入的值不超过100,如果用户输入的值超过100,比如说123,文本将显示100而不是123。
这是我代码

TextField(
                                  controller: qtyController,
                                  keyboardType: TextInputType.number,
                                  onTap: () => qtyController.text = '',
                                  inputFormatters: [FilteringTextInputFormatter. digitsOnly,
                                    LengthLimitingTextInputFormatter(3),
                                  ],
                                  textAlign: TextAlign.center,
                                  style: TextStyle(color: Colors.white),
                                )
zqdjd7g9

zqdjd7g91#

您可以使用onChanged回调来侦听更改

TextField(
      controller: qtyController,
      keyboardType: TextInputType.number,
      onTap: () => qtyController.text = '',
      onChanged: (val){
       if (val.isNotEmpty) {
        if(int.parse(val)>=100) {
          qtyController.text = "100";
        }
       }
      },
      inputFormatters: [
        FilteringTextInputFormatter.digitsOnly,
        LengthLimitingTextInputFormatter(3),
      ],
      textAlign: TextAlign.center,
      style: TextStyle(color: Colors.white),
    )
xwbd5t1u

xwbd5t1u2#

最简单的方法是为TextField或TextFormField提供一个onChanged()回调函数,只要文本发生变化,就会调用回调函数。
一种更强大但更精细的方法是提供TextEditingController作为TextField或TextFormField的控制器属性。
详情请点击此处:https://docs.flutter.dev/cookbook/forms/text-field-changes

9lowa7mx

9lowa7mx3#

可以使用maxLength属性设置TextField中允许的最大字符数。了解更多信息here

相关问题