hcBuildPageRoute<T> function
Route<T>
hcBuildPageRoute<T>(
- Widget child,
- HcPageRouteAnimation? pageRouteAnimation,
- Duration? duration
Implementation
Route<T> hcBuildPageRoute<T>(
Widget child,
HcPageRouteAnimation? pageRouteAnimation,
Duration? duration,
) {
if (pageRouteAnimation != null) {
if (pageRouteAnimation == HcPageRouteAnimation.fade) {
return PageRouteBuilder(
pageBuilder: (c, a1, a2) => child,
transitionsBuilder: (c, anim, a2, child) {
return FadeTransition(opacity: anim, child: child);
},
transitionDuration: duration ?? hcPageRouteTransitionDurationGlobal,
);
} else if (pageRouteAnimation == HcPageRouteAnimation.rotate) {
return PageRouteBuilder(
pageBuilder: (c, a1, a2) => child,
transitionsBuilder: (c, anim, a2, child) {
return RotationTransition(
turns: ReverseAnimation(anim), child: child);
},
transitionDuration: duration ?? hcPageRouteTransitionDurationGlobal,
);
} else if (pageRouteAnimation == HcPageRouteAnimation.scale) {
return PageRouteBuilder(
pageBuilder: (c, a1, a2) => child,
transitionsBuilder: (c, anim, a2, child) {
return ScaleTransition(scale: anim, child: child);
},
transitionDuration: duration ?? hcPageRouteTransitionDurationGlobal,
);
} else if (pageRouteAnimation == HcPageRouteAnimation.slide) {
return PageRouteBuilder(
pageBuilder: (c, a1, a2) => child,
transitionsBuilder: (c, anim, a2, child) {
return SlideTransition(
position: Tween(
begin: const Offset(1.0, 0.0),
end: const Offset(0.0, 0.0),
).animate(anim),
child: child,
);
},
transitionDuration: duration ?? hcPageRouteTransitionDurationGlobal,
);
} else if (pageRouteAnimation == HcPageRouteAnimation.slideBottomTop) {
return PageRouteBuilder(
pageBuilder: (c, a1, a2) => child,
transitionsBuilder: (c, anim, a2, child) {
return SlideTransition(
position: Tween(
begin: const Offset(0.0, 1.0),
end: const Offset(0.0, 0.0),
).animate(anim),
child: child,
);
},
transitionDuration: duration ?? hcPageRouteTransitionDurationGlobal,
);
}
}
return MaterialPageRoute<T>(builder: (_) => child);
}