私はIconButton
、通常、それはアイコンですIcons.expand_more
が、それを押すと、そのアイコンは になりますIcons.expand_less
。これをアニメーション化して、そのボタンを押すと、回転して上から下を指すようにします。を押すと同じように、アニメーションが回転するexpand_less
はずです。expand_more
どうすればこれを達成できますか? 以下は私のコードです:
IconButton(
icon: _expanded ? Icon(Icons.expand_less) : Icon(Icons.expand_more),
onPressed: () {
setState(() {
_expanded = !_expanded;
});
},
)
私はanimatedContainerを使用しようとしましたが、2つの異なるアイコンを使用していて、これでは実現できない回転効果があるため、うまくいきませんでした。また、以下のアプローチでアイコンを回転させようとしましたが、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;
});
},
)
これは展開前です:
これは展開後です:
ボタンクリック時の回転アニメーションが欲しい。