我想在按下后更改图标的颜色。我该怎么做?
我的IconButton
领先于ListTile
。
leading: new IconButton(
icon: Icon(Icons.star, color: Colors.white),
onPressed: () {
setState(() {
//color: Colors.yellow; //How?
});
},
),
答案 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)
上面的答案是正确的,但是我想补充一下,如果用户再次单击,颜色将保持不变,因此您可能想在第二次点击时将颜色更改为原始颜色,尽管值得一提
class SomeState extends State<StatefulWidget> {
Color _favIconColor = Colors.grey;
@override
Widget build(BuildContext) {
return ListTile(
child: IconButton(
icon: Icon(Icons.favorite),
color: _favIconColor,
tooltip: 'Add to favorite',
onPressed: () {
setState(() {
if(_favIconColor == Colors.grey){
_favIconColor = Colors.red;
}else{
_favIconColor = Colors.grey;
}
});
},
),
);
}
}