我有一个用于密码字段的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);
});
},
),
),
);发布于 2020-09-09 17:42:04

请检查以下代码。
然后使用下面的代码。
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);
});
},
),
),
),
)https://stackoverflow.com/questions/63808725
复制相似问题