【发布时间】:2020-12-27 17:08:25
【问题描述】:
我有一个用于密码字段的 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);
});
},
),
),
);
【问题讨论】:
-
showPaswswordIconColor 方法在哪里?
-
它是在文件顶部定义的颜色类型的变量。我可以到达它并在 setState() 中更改它,但显示的颜色没有改变。
标签: flutter iconbutton