如何在点击时改变图标的颜色,并在释放时恢复到默认颜色。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在点击时改变图标的颜色,并在释放时恢复到默认颜色。相关的知识,希望对你有一定的参考价值。

我有一个场景,当一个按钮被按下时,按钮的颜色应该改变,然后当我释放按钮时,颜色应该变回默认颜色。

我使用GestureDetector部件来实现这个功能,有人能帮帮我吗?

bool color = false;

GestureDetector(
   onTap: () {
       setState(() {
          if (age > 3) {
              color = true;
               age--;
          } 
          color = false;
       });
   },
   child: Icon(
       Icons.indeterminate_check_box,
       color: color
         ? kSelectedIconColor
         : kAppbarColor,
       size: 40.0,
   )
)
答案
class TapIcon extends StatefulWidget {
  @override
  _TapIconState createState() => _TapIconState();
}

class _TapIconState extends State<TapIcon> {
  bool tapped = false;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTapDown: (_) {
        setState(() {
          tapped = true;
        });
      },
      onTapUp: (_) {
        setState(() {
          tapped = false;
        });
      },
      child: Icon(
        Icons.indeterminate_check_box,
        color: tapped
            ? kSelectedIconColor
            : kAppbarColor,
        size: 40.0,
      ),
    );
  }
}

以上是关于如何在点击时改变图标的颜色,并在释放时恢复到默认颜色。的主要内容,如果未能解决你的问题,请参考以下文章

隐藏 UILabel 背景颜色并在需要时恢复它

如何修改记事本的字体颜色?

使用ajax在Django中点击like按钮时如何改变like按钮的颜色并增加一

如何在反应、样式化的组件中使用字体真棒图标更改单选按钮的颜色

自定义 UISlider 拇指图标:如何阻止拇指图标在拖动时恢复为默认圆形图标?

怎么设置一个TextView在被点击时改变背景色?