TextEditingController _controller = new TextEditingController();
String text = ""; // empty string to carry what was there before it onChanged
int maxLength = ...
...
new TextField(
controller: _controller,
onChanged: (String newVal) {
if(newVal.length <= maxLength){
text = newVal;
}else{
_controller.text = text;
}
}
)
TextField(
keyboardType: TextInputType.number,
inputFormatters: [
LengthLimitingTextInputFormatter(n,), //n is maximum number of characters you want in textfield
],
),
9条答案
按热度按时间ipakzgxi1#
使用inputFormatters属性
示例:
命名空间
gk7wooem2#
您可以使用
maxLength
属性,并通过将counterText
设置为空字符串来隐藏底部计数器文本。rryofs0p3#
maxLength
属性在Flutter中可用。https://docs.flutter.io/flutter/material/TextField/maxLength.html
pb3skfrl4#
我不得不在RSproute提到的内容中添加一个额外的片段。完整代码在这里:
vwoqyblh5#
您可以使用TextEditingController控制有关文本字段的所有内容。因此,如果您要将此信息与TextField中的onChanged事件配对,则可以在其中执行任何您喜欢的逻辑。例如:
我能够控制文本字段保持在指导方针内,因为如果它超过了它,它将恢复到最后一个类型之前的状态。
ddrv8njm6#
在1.25版本中,这更容易。maxLengthEnforced属性需要设置为true。否则,上面的答案将不起作用。
h7wcgrx37#
可以在输入格式化程序中设置LengthLimitingTextInputFormatter
55ooxyrt8#
有两种方法
方案一
LengthLimitingTextInputFormatter
创建一个格式化程序,防止插入超过限制的字符。方案二:
如果不想在
TextField
底部显示计数器文本,则在InputDecoration
中添加空的counterText
示例:
6za6bjd09#
您可以使用以下代码裁剪limit length和hide counter:
原始答案你可以在这里找到。