首页 > 解决方案 > Flutter:(iOS)电子邮件地址的文本表单字段自动大写名称

问题描述

行为视频

我正在我的颤振应用程序中实现一个基本的登录屏幕,我遇到了一个非常烦人的问题。我的电子邮件地址是 lastName.firstName@.... 毫无疑问,只要我输入“。” 在我的姓之后,它自动将第一个字母大写。我已经用其他一些名称对其进行了测试,似乎它发生在某些人身上,而不发生在其他人身上。我的文本表单字段小部件定义为:

TextFormField(
  controller: _email,
  keyboardType: TextInputType.emailAddress,
  textCapitalization: TextCapitalization.none,
  decoration: InputDecoration(labelText: 'email'),
),

这只是操作系统控制的东西还是可以修复的?我只在 iOS sim 中尝试过,但我假设在实际设备上的行为会相似。

如果没有明确的修复程序,是否有人对解决方法有想法?

我尝试将小部件更改为此:

TextField(
  controller: _email,
  keyboardType: TextInputType.emailAddress,
  textCapitalization: TextCapitalization.none,
  decoration: InputDecoration(labelText: 'email'),
  onChanged: (value){
    _email.text = value.toLowerCase();
  }
)

这种工作,但它似乎hacky。当我输入“。”时,它弄乱了光标位置,偶尔会卡在闪烁的文本中。抱歉,如果这是一个非常基本的问题,我刚开始使用 Flutter 和移动应用程序开发。提前致谢!

标签: iosdartflutter

解决方案


你一定认识一个叫简的人;该字段是自动更正的。添加

autocorrect: false,

到您的电子邮件文本字段。


推荐阅读