dart 抖动使文本字段输入变为抖动

ltskdhd1  于 5个月前  发布在  其他
关注(0)|答案(2)|浏览(33)

更新(2023/12/05):
我通过将keyboardType设置为TextInputType.visiblePassword修复了它
此问题是否有任何更新Flutter TextField value always uppercase & debounce
我已经尝试了一些代码,使输入文本成为文本。

class UpperCaseTextFormatter extends TextInputFormatter {
  @override
  TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
    return TextEditingValue(
      text: newValue.text.toUpperCase(),
      selection: newValue.selection,
    );
  }
}

个字符
但是当我输入“QWER”时,它不正确,它总是变成“QQWQWEQWER”。

TextFormField(
  controller: _controller,
  inputFormatters: [
    UpperCaseTextFormatter(),
  ],
  decoration: InputDecoration(
    border: OutlineInputBorder(),
  ),
),


视频来源:https://drive.google.com/file/d/1q3dwuVMPzt_kBP4c2lyiahQ6znkSbM-n/view?usp=sharing
我不喜欢使用textCapitalization,因为如果格式化程序不工作,用户仍然可以将其更改为textCapitalization
使用TextInputFormatter使文本字段输入变为文本字段

yfwxisqw

yfwxisqw1#

您可以使用TextEditingController使用户输入始终大写,使用下面的代码,用户无法将其更改为小写。

TextEditingController _controller = TextEditingController();

TextFormField(
  controller: _controller,
  onChanged: (String text) {
    _controller.text = text.toUpperCase();
  },
);

字符串
这将工作快乐编码!

rsaldnfx

rsaldnfx2#

1.将控制器分配给TextField。
1.在onChanged函数中用toUpperCase()转换控制器中的文本值:

TextEditingController _controller = TextEditingController();

TextFormField(
  controller: _controller,
  onChanged: (String text) {
    _controller.text = text.toUpperCase();
  },
);

字符串

相关问题