第一步,给textfield设置输入法则:
inputFormatters: [
WhitelistingTextInputFormatter(RegExp(
"[a-zA-Z]|[\u4e00-\u9fa5]|[0-9]")), //只能输入汉字或者字母或数字
LengthLimitingTextInputFormatter(maxLength),//最大长度
],
第二步,动态修改最大字长:
onChanged: (value) {
_changeMaxLimit(value);
},
/// 改字数限制,每输入一个中文字符,要减1。
/// 字符要求:10个汉字或20个英文
void _changeMaxLimit(String value) {
maxLength = 20;
for (int i = 0; i < value.length; i++) {
if (value.codeUnitAt(i) > 122) {
maxLength--;
}
}
setState(() {});
}
我这里简略写了关键部分,关于maxLength的初始化,textfield别的参数设置,大家还请自行解决。

博客介绍了在Flutter中设置文本输入字数限制的方法,包括给textfield设置输入法则以及动态修改最大字长,同时提醒关于maxLength初始化和textfield其他参数设置需自行解决。
4797

被折叠的 条评论
为什么被折叠?



