flutter - 在按钮按下时颤动旋转图标并带有动画
问题描述
我有button
一个icon
里面有一个。现在我正在使用两个不同的icons
并更改它们onTap
:
Widget build(BuildContext context) {
return GestureDetector(
onTap: () {
setState(() {
_isDropdownOpened = !_isDropdownOpened;
}
...
},
child:
_isDropdownOpened
? SvgPicture.asset(
'images/icons/arrow_down_primary.svg',
width: scaleWidth(12),
)
: SvgPicture.asset(
'images/icons/arrow_up_primary.svg',
width: scaleWidth(12),
),
),
);
这是有效的,但我想要一个RotationTransition
. 如何icon
onTap
使用动画旋转我的,所以我不需要两个不同的 SVG?
解决方案
使用RotatedBox
小部件并在您的setState
你可以这样做
child: RotatedBox(
quarterTurns: _isDropdownOpened? 2:0,
child: SvgPicture.asset(
'images/icons/arrow_down_primary.svg',
width: scaleWidth(12),
),
)
如果您想将动画应用于旋转以及考虑查看此
推荐阅读
- javascript - 如何为 javascript 幻灯片预加载图像
- javascript - 为什么这个箭头函数返回一个 Promise{
} - python - MYSQL 数据库错误:“pymysql.err.ProgrammingError:(1064,“您的 SQL 语法有错误;请查看与您对应的手册-”
- python - 如何在 Ubuntu 20.04 GCP 实例上安装 virtualenv?
- vue.js - Heroku 配置变量 - 它们是否通过 Vue.js 中的 process.env 可见?
- python - 如果 pandas 列值为 true,则将条件语句应用于其他列。Series 的真值是模棱两可的错误
- amazon-web-services - kubernetes autoscaler 不会缩减节点
- scala - 避免加入 Spark Scala DataFrame
- ios - 如何在后台模式下为 iOS 应用程序创建“重新打开”应用程序按钮?(迅速)
- javascript - 使用 Javascript 从 DOM 中删除特定列表项