import 'package:flutter/material.dart';
import 'package:flutter_twitter_clone/helper/routes.dart';
class CustomRoute<T> extends MaterialPageRoute<T> {
CustomRoute({WidgetBuilder builder, RouteSettings settings})
: super(builder: builder, settings: settings);
@override
Widget buildTransitions(BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) {
Routes.sendNavigationEventToFirebase(settings.name);
return FadeTransition(
opacity: CurvedAnimation(parent: animation, curve: Curves.fastOutSlowIn),
child: child,
);
}
}
이런식으로 계승해서 쓴다
또한
class SlideLeftRoute<T> extends MaterialPageRoute<T> {
SlideLeftRoute({WidgetBuilder builder, RouteSettings settings})
: super(builder: builder, settings: settings);
@override
Widget buildTransitions(BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) {
Routes.sendNavigationEventToFirebase(settings.name);
return SlideTransition(
position: new Tween<Offset>(
begin: const Offset(1.0, 0.0),
end: Offset.zero,
).animate(
CurvedAnimation(parent: animation, curve: Curves.fastOutSlowIn)),
child: child,
);
}
}
이런식으로 이름만 바꿀수도 있다.
FadeTransition(
opacity: CurvedAnimation(parent: animation, curve: Curves.fastOutSlowIn),
child: child,
);
이런식으로 애니메이션을 지정을해서 화면이동시에 가능한것들을 지정할 수 있다.