【发布时间】:2021-06-28 07:32:16
【问题描述】:
我有 shopBasket 图标。按下时,我希望它平滑过渡到另一个图标。下面是图标。有什么小部件吗?我知道有一些选项,例如 AnimatedContainer。但是在这种情况下如何使用它呢?
已编辑
我已经用AnimatedCrossFade解决了:
import 'package:flutter/material.dart';
class IconAnimateWidget extends StatefulWidget {
@override
_IconAnimateWidgetState createState() => _IconAnimateWidgetState();
}
class _IconAnimateWidgetState extends State<IconAnimateWidget> {
bool _firstChild = false;
@override
Widget build(BuildContext context) {
return AnimatedCrossFade(
firstCurve: Curves.fastOutSlowIn,
secondCurve: Curves.fastOutSlowIn,
firstChild: GestureDetector(
onTap: () {
setState(() {
_firstChild = !_firstChild;
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Expanded(child: Icon(Icons.shopping_bag)),
],
)),
secondChild: GestureDetector(
onTap: () {
setState(() {
_firstChild = !_firstChild;
});
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.min,
children: [
Icon(Icons.add_circle_outline),
SizedBox(width: 10),
Icon(Icons.remove_circle_outline),
],
),
),
crossFadeState: _firstChild
? CrossFadeState.showFirst
: CrossFadeState.showSecond,
duration: Duration(milliseconds: 200),
);
);
}
}
希望对其他人有所帮助
【问题讨论】:
-
试试
AnimatedCrossFade -
添加您的代码。