使用AnimatedBuilder来包装Container并实现动画效果。
示例代码:
class MyAnimatedContainer extends StatefulWidget {
@override
_MyAnimatedContainerState createState() => _MyAnimatedContainerState();
}
class _MyAnimatedContainerState extends State {
double _width = 100.0;
double _height = 100.0;
@override
Widget build(BuildContext context) {
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AnimatedBuilder(
animation: _animationController,
builder: (BuildContext context, Widget child) {
return Container(
width: _width,
height: _height,
color: Colors.red,
child: child,
);
},
),
FlatButton(
child: Text('Start Animation'),
onPressed: () {
setState(() {
_width = 200.0;
_height = 200.0;
});
},
),
],
);
}
}
在这个例子中,我们使用AnimatedBuilder来包装一个Container,在点击FlatButton时改变Container的宽度和高度,实现动画效果。记得要在setState中改变宽度和高度,这样AnimatedBuilder才会重新build,产生动画效果。