import 'package:flutter/material.dart'; import 'list.dart'; import 'main.dart'; class FadeAnimation extends StatelessWidget { static const routeName = 'Fade_Animation'; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Fade Animation"), ), body: ListView.builder( itemCount: curveList.length, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("${curveList[index]}"), leading: CircleAvatar( child: Text("${index + 1}"), backgroundColor: Colors.white, ), onTap: () { print(curveList.length); Navigator.of(context).push(PageRouteBuilder( pageBuilder: (context, animation, anotherAnimation) { return ReturnPage(); }, transitionDuration: Duration(milliseconds: 2000), transitionsBuilder: (context, animation, anotherAnimation, child) { animation = CurvedAnimation( curve: curveList[index], parent: animation); return FadeTransition( opacity: animation, child: child, ); })); }, ), ); }), ); } } import 'package:flutter/animation.dart'; List<Curve> curveList = [ Curves.bounceIn, Curves.bounceInOut, Curves.bounceOut, Curves.decelerate, Curves.ease, Curves.easeIn, Curves.easeInBack, Curves.easeInCirc, Curves.easeInCubic, Curves.easeInExpo, Curves.easeInOut, Curves.easeInOutBack, Curves.easeInOutCirc, Curves.easeInOutCubic, Curves.easeInOutExpo, Curves.easeInOutQuad, Curves.easeInOutQuart, Curves.easeInOutQuint, Curves.easeInOutSine, Curves.easeInQuad, Curves.easeInQuart, Curves.easeInQuint, Curves.easeInSine, Curves.easeInToLinear, Curves.easeOut, Curves.easeOutBack, Curves.easeOutCubic, Curves.easeOutExpo, Curves.easeOutQuad, Curves.easeOutQuart, Curves.easeOutQuint, Curves.easeOutSine, Curves.elasticIn, Curves.elasticInOut, Curves.elasticOut, Curves.fastLinearToSlowEaseIn, Curves.fastOutSlowIn, Curves.linear, Curves.linearToEaseOut, Curves.slowMiddle, ]; import 'package:flutter/material.dart'; import 'RotationAnimation.dart'; import 'fadeAnimation.dart'; import 'scaleAnimation.dart'; import 'sizeAnimation.dart'; import 'slideAnimation.dart'; main() { runApp(MaterialApp( routes: { SlideAnimation.routeName: (context) => SlideAnimation(), FadeAnimation.routeName: (context) => FadeAnimation(), ScaleAnimation.routeName: (context) => ScaleAnimation(), SizeAnimation.routeName: (context) => SizeAnimation(), RotationAnimation.routeName: (context) => RotationAnimation() }, theme: ThemeData.dark(), debugShowCheckedModeBanner: false, home: SafeArea( child: Scaffold( appBar: AppBar(title: Text("Page Tranaction")), body: ListView.builder( itemBuilder: (context, index) { return Padding( padding: const EdgeInsets.all(8.0), child: Card( child: ListTile( onTap: () { Navigator.of(context).pushNamed(animationTypeList[index]); }, leading: CircleAvatar( backgroundColor: Colors.white, child: Text("${index + 1}"), ), title: Text(animationTypeList[index].toString()), ), ), ); }, itemCount: animationTypeList.length, ), ), ), )); } class ReturnPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar(), body: Center( child: Text('Yoooooooooo !'), ), ); } } var animationTypeList = [ SlideAnimation.routeName, FadeAnimation.routeName, ScaleAnimation.routeName, SizeAnimation.routeName, RotationAnimation.routeName ]; import 'package:flutter/material.dart'; import 'list.dart'; import "main.dart"; class RotationAnimation extends StatelessWidget { static const routeName = 'Rotation_Animation'; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Rotation Animation"), ), body: ListView.builder( itemCount: curveList.length, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("${curveList[index]}"), leading: CircleAvatar( child: Text("${index + 1}"), backgroundColor: Colors.white, ), onTap: () { print(curveList.length); Navigator.of(context).push(PageRouteBuilder( pageBuilder: (context, animation, anotherAnimation) { return ReturnPage(); }, transitionDuration: Duration(milliseconds: 2000), transitionsBuilder: (context, animation, anotherAnimation, child) { animation = CurvedAnimation( curve: curveList[index], parent: animation); return RotationTransition( turns: animation, child: child, ); })); }, ), ); }), ); } } import 'package:flutter/material.dart'; import 'list.dart'; import 'main.dart'; class ScaleAnimation extends StatelessWidget { static const routeName = 'Scale_Animation'; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Scale Animation"), ), body: ListView.builder( itemCount: curveList.length, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("${curveList[index]}"), leading: CircleAvatar( child: Text("${index + 1}"), backgroundColor: Colors.white, ), onTap: () { print(curveList.length); Navigator.of(context).push(PageRouteBuilder( pageBuilder: (context, animation, anotherAnimation) { return ReturnPage(); }, transitionDuration: Duration(milliseconds: 2000), transitionsBuilder: (context, animation, anotherAnimation, child) { animation = CurvedAnimation( curve: curveList[index], parent: animation); return ScaleTransition( scale: animation, child: child, ); })); }, ), ); }), ); } } import 'package:flutter/material.dart'; import 'list.dart'; import 'main.dart'; class SizeAnimation extends StatelessWidget { static const routeName = 'Size_Animation'; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Size Animation"), ), body: ListView.builder( itemCount: curveList.length, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("${curveList[index]}"), leading: CircleAvatar( child: Text("${index + 1}"), backgroundColor: Colors.white, ), onTap: () { print(curveList.length); Navigator.of(context).push(PageRouteBuilder( pageBuilder: (context, animation, anotherAnimation) { return ReturnPage(); }, transitionDuration: Duration(milliseconds: 2000), transitionsBuilder: (context, animation, anotherAnimation, child) { animation = CurvedAnimation( curve: curveList[index], parent: animation); return Align( child: SizeTransition( sizeFactor: animation, child: child, axisAlignment: 0.0, ), ); })); }, ), ); }), ); } } import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'list.dart'; import 'main.dart'; class SlideAnimation extends StatelessWidget { static const routeName = 'Slide_Animation'; Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Slide Animation"), ), body: ListView.builder( itemCount: curveList.length, itemBuilder: (context, index) { return Card( child: ListTile( title: Text("${curveList[index]}"), leading: CircleAvatar( child: Text("${index + 1}"), backgroundColor: Colors.white, ), onTap: () { print(curveList.length); Navigator.of(context).push(PageRouteBuilder( pageBuilder: (context, animation, anotherAnimation) { return ReturnPage(); }, transitionDuration: Duration(milliseconds: 300), transitionsBuilder: (context, animation, anotherAnimation, child) { animation = CurvedAnimation( curve: curveList[index], parent: animation); return SlideTransition( position: Tween( begin: Offset(1.0, 0.0), end: Offset(0.0, 0.0)) .animate(animation), child: child, ); })); }, ), ); }), ); } }