如何在点击时改变图标的颜色,并在释放时恢复到默认颜色。
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,
),
);
}
}
以上是关于如何在点击时改变图标的颜色,并在释放时恢复到默认颜色。的主要内容,如果未能解决你的问题,请参考以下文章
使用ajax在Django中点击like按钮时如何改变like按钮的颜色并增加一
如何在反应、样式化的组件中使用字体真棒图标更改单选按钮的颜色