TextField小部件似乎没有"Limit"属性来限制可以键入的字符数.我如何强制要求在TextField小部件中只能提供一定数量的字符作为输入.我试着查看装修属性,并以某种方式在那里设置了可能的限制,但似乎也不起作用.有没有我应该使用的其他小工具?
TextField小部件似乎没有"Limit"属性来限制可以键入的字符数.我如何强制要求在TextField小部件中只能提供一定数量的字符作为输入.我试着查看装修属性,并以某种方式在那里设置了可能的限制,但似乎也不起作用.有没有我应该使用的其他小工具?
我不得不在RSprout提到的内容中添加一个额外的代码片段.完整代码如下:
TextEditingController _controller = new TextEditingController();
String text = ""; // empty string to carry what was there before it
onChanged
int maxLength = ...
...
new TextField(
controller: _controller,
onChange: (String newVal) {
if(newVal.length <= maxLength){
text = newVal;
}else{
_controller.value = new TextEditingValue(
text: text,
selection: new TextSelection(
baseOffset: maxLength,
extentOffset: maxLength,
affinity: TextAffinity.downstream,
isDirectional: false
),
composing: new TextRange(
start: 0, end: maxLength
)
);
_controller.text = text;
}
}
);