【发布时间】:2021-09-11 11:26:00
【问题描述】:
我有一个IconButton,通常,它的图标是Icons.expand_more,但是当我按下它时,它的图标应该是Icons.expand_less。我想对此进行动画处理,以便如果我按下该按钮,它将旋转并从 upwords 指向 downwords。同样,当我按下expand_less 时,它应该变成expand_more 并带有旋转动画。我怎样才能做到这一点?
以下是我的代码:
IconButton(
icon: _expanded ? Icon(Icons.expand_less) : Icon(Icons.expand_more),
onPressed: () {
setState(() {
_expanded = !_expanded;
});
},
)
我尝试使用 animatedContainer 但它不起作用,因为我使用了两个不同的图标,并且我无法实现旋转效果。 我也尝试使用以下方法旋转图标,但是当它从 0 度旋转到 180 度时无法显示动画。
IconButton(
icon: AnimatedContainer(
duration: Duration(seconds: 3),
child: Transform.rotate(
angle: _expanded ? 0 : 180 * math.pi / 180,
child: Icon(Icons.expand_less))),
// icon:
// _expanded ? Icon(Icons.expand_less) : Icon(Icons.expand_more),
onPressed: () {
setState(() {
_expanded = !_expanded;
});
},
)
这是展开前的:
这是扩展后的:
我想要按钮点击时的旋转动画。
【问题讨论】:
-
感谢大家的回答!我发布了完整的解决方案below。
标签: flutter dart iconbutton