【问题标题】:Adaptive Mask for TextFieldTextField 的自适应遮罩
【发布时间】:2022-11-18 13:26:30
【问题描述】:

我制作了一个 TextField 来更新用户的信息。

用户必须键入 11 或 14 个数字,因此如果有人键入超过 11 个数字,则文本字段的掩码必须更改。我怎么做?

面具:

var mascaraCpf = MaskTextInputFormatter(
      mask: '###.###.###-##',
      filter: {"#": RegExp(r'[0-9]')},
      type: MaskAutoCompletionType.lazy);

  var mascaraCnpj = MaskTextInputFormatter(
      mask: '##.###.###/####-##',
      filter: {"#": RegExp(r'[0-9]')},
      type: MaskAutoCompletionType.lazy);

文本域:

TextField(
   keyboardType: TextInputType.number,
   inputFormatters: [
     mascaraCpf,
     FilteringTextInputFormatter.digitsOnly
   ],
      controller: cpfController,
      decoration: InputDecoration(
      filled: true,
      fillColor: Color(0xffFCF9F4),
      border: OutlineInputBorder(
            borderRadius:                                  
            BorderRadius.all(Radius.circular(5))),
            hintText: appModel.usuario!.cpf,
         ),
       ),

【问题讨论】:

    标签: flutter


    【解决方案1】:

    你有 StatefulWidget 吗?

    如果是,请尝试以下操作:

    onChanged: (value) {
      if (value.length >= 11) {
        setState(() {
          //change something
        });
      } else {
        setState(() {
          //change back
        });
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-05
      • 2015-03-23
      • 2012-11-06
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多