我尝试(双击容器)在屏幕上显示心脏动画。我希望它与like_button库(其中已经有我想要的心脏动画),但不是用户单击like按钮,我希望它是在容器上使用双击。我知道这个库不支持这个,但是有没有人做了一个分支或者修改它,使它成为可能?谢谢!下面是一些示例代码,您可以使用它们来测试库:
import 'package:flutter/material.dart';
import 'package:like_button/like_button.dart';
class LikeAnimationWidget extends StatefulWidget {
@override
_LikeAnimationWidgetState createState() => _LikeAnimationWidgetState();
}
class _LikeAnimationWidgetState extends State<LikeAnimationWidget> {
bool liked = false;
Widget build(BuildContext context) {
return Column(
children: <Widget>[
SizedBox(height: 100),
LikeButton(
onTap: (bool isLiked) async {
setState(() {
liked = !isLiked;
});
return !isLiked;
},
isLiked: liked,
size: 200,
circleColor:
CircleColor(start: Color(0xff00ddff), end: Color(0xff0099cc)),
bubblesColor: BubblesColor(
dotPrimaryColor: Color(0xff33b5e5),
dotSecondaryColor: Color(0xff0099cc),
),
likeBuilder: (bool isLiked) {
return Icon(
Icons.favorite,
color: isLiked ? Colors.deepPurpleAccent : Colors.grey,
size: 50,
);
},
countBuilder: (int? count, bool isLiked, String text) {
var color = isLiked ? Colors.deepPurpleAccent : Colors.grey;
Widget result;
if (count == 0) {
result = Text(
"love",
style: TextStyle(color: color),
);
} else {
result = Text(
text,
style: TextStyle(color: color),
);
}
return result;
},
),
],
);
}
}
1条答案
按热度按时间zynd9foi1#
您可以覆盖
LikeButton
类中的函数onTap
并实现GestureListener
。很可能甚至会有一个已经实现了你只是修改。这可以通过创建类MyLikeButton
并扩展LikeButton
类来完成。然后,您可以使用@Override
标记覆盖onTap
函数并使其生效,以便在双击时触发onTap
事件。如何用手势监听器实现双击手势可以阅读here