Flutter 使用Listener在点击切换状态

通过使用Listener 在 StatefulWidget中实现点击切换状态,下面是实现效果

这个组件的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
class _LikeAndUnlikeState extends State<_LikeAndUnlike> {
bool _likeFlag = false;
num _styleId ;
num _iconSize;
Widget _icon;

@override
void initState() {
super.initState();
//从组件中初始化组件状态
_likeFlag = widget._likeFlag;
_styleId = widget._styleId;
_iconSize = widget._iconSize;
print('初始like按钮组件');
}

@override
Widget build(BuildContext context) {
String iconPath = 'assets/images/like.png';
if ( this._likeFlag ) {
iconPath = 'assets/images/like-se.png';
}
_icon = Image.asset(
iconPath,
height: _iconSize,
width: _iconSize,
);
var listenerIcon = Listener(
child: _icon,
onPointerDown: (e)=>{
_clickChange()
},
);
return listenerIcon;
}

_clickChange(){
//todo 发送http请求
setState(() {
_likeFlag = !_likeFlag;
});
print('点击了喜欢和不喜欢:'+_likeFlag.toString());
}
}
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2015-2020 AChampion
  • Powered by Hexo Theme Ayer
  • PV: UV:

开玩笑的~不用打赏