flutter - 带有 AnimationController 的 GridView 无法正常工作
问题描述
我在 GridView 中添加了点击动画。当我点击时,所有按钮都是动画的。有可能修复它吗?
double _scale;
AnimationController _controller;
@override
void dispose() {
_controller.dispose();
super.dispose();
}
void _onTapDown(TapDownDetails details) {
_controller.forward();
}
void _onTapUp(TapUpDetails details) {
_controller.reverse();
}
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: Duration(milliseconds: 200),
lowerBound: 0.0,
upperBound: 0.1,
)..addListener(() {
setState(() {});
});
}
在构建方法中
@override
Widget build(BuildContext context) {
_scale = 1 - _controller.value;
GridView.count(
crossAxisCount: 2,
childAspectRatio: (itemWidth / itemHeight),
controller: ScrollController(keepScrollOffset: false),
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: productModel.map((value) {
return Padding(
padding: EdgeInsets.all(width * .02),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
GestureDetector(
onTapDown: _onTapDown,
onTapUp: _onTapUp,
onLongPressEnd: _onTapLongPressEnd,
child: Transform.scale(
scale: _scale,
child: Container(
child: Center(
child: CustomText(//text),
)),
),
)
],
),
);
}).toList(),
),
}
解决方案
推荐阅读
- visual-studio-2019 - 在 Visual Basic 中读取的 Google 表格 API
- macos-big-sur - 如何使用终端检查进程是否在 Rosetta 下运行
- javascript - 如何通过使用 react 和 javascript 过滤基于 id 的对象数组来检索对象名称?
- unity3d - 防止 Unity 中的物理计算吃太多 FPS 的最佳方法?
- angular - 我如何使用 css 样式表更改已经生成的角度应用程序 - 使用 scss
- android - web3j.httpClient 的 NoClassDefFoundError
- python - 如何使用 Python 请求或 urllib 登录页面
- python - 无法维护 python 集中的排序顺序 - Django 查询集 - Python
- curl - curl 和 wget 的限制
- amazon-web-services - 如何使用 terraform 删除非空 s3 存储桶?