Flutter的TextField输入全为大写(输入小写也无效)该如何适配用户输入?
解决方案
这个现象由TextField自带大写转换规则、系统键盘自动大写逻辑或上层全局主题配置导致,按以下步骤修改即可让输入内容和用户实际输入保持一致:
- 给每个TextField显式指定
textCapitalization: TextCapitalization.none,关闭组件自带的大写转换。该属性默认值虽为none,但部分场景会被全局主题覆盖,显式指定优先级更高 - 搭配关闭键盘自动校正与自动建议功能,避免系统键盘主动转换输入内容:设置
autocorrect: false、enableSuggestions: false - 若项目全局配置了TextField的
TextInputFormatter,检查是否存在强制转大写的格式化逻辑,可针对当前输入框单独移除或调整规则
修改后完整代码示例
TextField( textCapitalization: TextCapitalization.none, autocorrect: false, enableSuggestions: false, decoration: const InputDecoration( border: OutlineInputBorder(), hintText: 'Enter Thee Name ' ), ), SizedBox( height: 12, ), TextField( textCapitalization: TextCapitalization.none, autocorrect: false, enableSuggestions: false, // 密码输入框建议额外添加该行隐藏输入内容,也可避免部分系统键盘对密码的自动大写处理 obscureText: true, decoration: const InputDecoration( border: OutlineInputBorder(), hintText: 'Enter Thee PassWord ' ), )
异常效果参考

内容的提问来源于stack exchange,提问作者Kavach Dheer
相关产品推荐
相关产品推荐

