实现一些基本的动画
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin //具备TickerProvider特性
//定义动画初始值
AnimationController _controller;
double _size = 100;
//动画监听
@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: Duration(milliseconds: 500),
lowerBound: 100,
upperBound: 200)
..addStatusListener((AnimationStatus status) {
if(status == AnimationStatus.completed){
_controller.reverse();
}else if(status == AnimationStatus.dismissed){
_controller.forward();
}
})
..addListener(() {
setState(() {
_size = _controller.value;
});
});
}
//body
Center(
child: GestureDetector(
onTap: (){_controller.forward();},
child: Container(
height: _size,
width: _size,
color: Colors.blue,
alignment: Alignment.center,
child: Text("点我,开始动画"),
),
),
)
//释放资源
@override
void dispose() {
super.dispose();
_controller.dispose();
}