如何在按下时立即更改图标按钮颜色(颤动)

时间:2021-02-11 05:44:23

标签: flutter

此代码仅使用一个图标按钮即可正常工作。但是当我创建多个图标按钮时,情况就不同了。使用三(3)个图标按钮,按下任何人(1)个图标,所有三(3)个图标都会改变它的颜色。如何单独改变颜色?

class _userProfileScreenState 扩展状态 { 颜色_iconcolor = Colors.black;


IconButton(
      onPressed: () {
      setState(() {
          _iconcolor = Color(0xff187bcd);
           },);
      },
      icon: Icon(
          FontAwesomeIcons.mars,
          color: _iconcolor, //male
          size: 45,
          ),
      ),

2 个答案:

答案 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.
       ]
    )
}
}