此代码仅使用一个图标按钮即可正常工作。但是当我创建多个图标按钮时,情况就不同了。使用三(3)个图标按钮,按下任何人(1)个图标,所有三(3)个图标都会改变它的颜色。如何单独改变颜色?
class _userProfileScreenState 扩展状态 { 颜色_iconcolor = Colors.black;
IconButton(
onPressed: () {
setState(() {
_iconcolor = Color(0xff187bcd);
},);
},
icon: Icon(
FontAwesomeIcons.mars,
color: _iconcolor, //male
size: 45,
),
),
答案 0 :(得分:1)
你可以这样做
class SomeState extends State<StatefulWidget> {
Color _iconColor = Colors.white;
@override
Widget build(BuildContext) {
return ListTile(
leading: new IconButton(
icon: Icon(Icons.star, color: _iconColor),
onPressed: () {
setState(() {
_iconColor = Colors.yellow;
});
},
);
}
}
答案 1 :(得分:0)
这很简单,尝试创建 3 个变量来保存 3 个按钮的颜色值
class SomeState extends State<StatefulWidget> {
Color _iconColor1 = Colors.white;
Color _iconColor2 = Colors.black;
Color _iconColor3 = Colors.green
@override
Widget build(BuildContext) {
return Row(
children:[
IconButton(
icon: Icon(Icons.share, color: _iconColor1,),
onPressed: () {
setState((){
_iconColor1= //setNew Color
});
}
),
//enter 2 more icons like this and change color to different variable.
]
)
}
}