如何解决IconButton的颜色不变颤动
我有一个用于密码字段的TextField小部件和一个用于显示/隐藏密码的IconButton。我想要的是,当用户点击IconButton时,它应该更改颜色。实际上,当我在单击IconButton之前和之后运行print(showPassWordIconColor)
时,它的值会更改。但是,它不会显示更改的颜色。
我看到了其他一些问题及其答案,并尝试了它们,但仍然遇到相同的问题。
这是完整的小部件。
(最初是showPasswordIconColor = Colors.grey)
Widget passwordField = AppTextFormField(
obscureText: !_showPassword,decoration: Inputdecoration(
hintText: "Password",border: OutlineInputBorder(),suffixIcon: IconButton(
icon: Icon(
Icons.remove_red_eye,color: showPasswordIconColor,),onpressed: () {
setState(() {
_showPassword = !_showPassword;
if (showPaswswordIconColor == Colors.grey) {
showPaswswordIconColor = buttonColor;
} else {
showPaswswordIconColor = Colors.grey;
}
print(showPaswswordIconColor);
});
},);
解决方法
然后使用下面的代码。
Container(
width: 200,height: 200,child: TextFormField(
obscureText: !_showPassword,decoration: InputDecoration(
hintText: "Password",border: OutlineInputBorder(),suffixIcon: IconButton(
icon: Icon(
Icons.remove_red_eye,color: showPasswordIconColor,),onPressed: () {
setState(() {
_showPassword = !_showPassword;
if (showPasswordIconColor == Colors.grey) {
showPasswordIconColor = Colors.red;
} else {
showPasswordIconColor = Colors.grey;
}
print(showPasswordIconColor);
});
},)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。