演示:
代码:
import 'package:flutter/material.dart';
class ScaleTransitionPage extends StatefulWidget {
ScaleTransitionPage({Key key}) : super(key: key);
@override
_ScaleTransitionPageState createState() => _ScaleTransitionPageState();
}
class _ScaleTransitionPageState extends State<ScaleTransitionPage>
with SingleTickerProviderStateMixin {
AnimationController _controller;
Tween<double> _tween = Tween(begin: 0.7, end: 1);
@override
void initState() {
super.initState();
_controller = AnimationController(
duration: const Duration(milliseconds: 1000), vsync: this);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('ScaleTransition')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
ScaleTransition(
scale: _tween.animate(
CurvedAnimation(parent: _controller, curve: Curves.elasticOut),
),
child: FlutterLogo(size: 200),
),
RaisedButton(
child: Text('弹性动画'),
onPressed: () {
_controller.forward();
}),
],
),
),
);
}
}