Flutter TextFormField验证错误时光标变错误文本颜色,如何关闭?
解决TextFormField验证错误时光标变色问题
当TextFormField触发验证错误时,光标会自动沿用errorStyle的颜色,要保持默认光标颜色,只需要给TextFormField手动指定cursorColor属性即可,这个属性会覆盖错误状态下的自动变色逻辑。
具体修改方法
在你的TextFormField代码中添加cursorColor,可以直接指定固定颜色,或者继承主题中的默认光标颜色:
TextFormField( controller: emailController, // 继承主题默认光标颜色,也可以直接写具体颜色值比如Colors.blue cursorColor: Theme.of(context).cursorColor, decoration: getInputDecorationTheme('Email'), validator: (value) { setState( () { errorMessage = ''; }, ); if (value == null || value.isEmpty) { return 'Please enter your email'; } if (!_isValidEmail(value)) { return 'Please enter a valid email address'; } return null; }, ),
如果想直接用固定颜色值,比如你默认状态的光标颜色是蓝色,也可以写成:
cursorColor: Colors.blue,
这样设置后,无论验证是否出错,光标都会保持你指定的默认颜色,不会再跟随errorStyle变色。
内容的提问来源于stack exchange,提问作者johan
相关产品推荐
相关产品推荐

