animationRoute static method

PageRouteBuilder animationRoute({
  1. required AnimatedPageBuilder animatedBuilder,
  2. required String routeName,
  3. Map? params,
  4. Duration transitionDuration = const Duration(milliseconds: 200),
  5. bool opaque = true,
  6. bool barrierDismissible = false,
  7. Color? barrierColor,
  8. String? barrierLabel,
  9. bool maintainState = true,
  10. bool fullscreenDialog = false,
})

用户自定义flutter页面转场动画

Implementation

static PageRouteBuilder animationRoute({
  required AnimatedPageBuilder animatedBuilder,
  required String routeName,
  Map? params,
  Duration transitionDuration = const Duration(milliseconds: 200),
  bool opaque = true,
  bool barrierDismissible = false,
  Color? barrierColor,
  String? barrierLabel,
  bool maintainState = true,
  bool fullscreenDialog = false,
}) {
  RouteSettings settings = RouteSettings(name: routeName, arguments: params);
  PageRouteBuilder pageRoute = PageRouteBuilder<dynamic>(
    settings: settings,
    transitionDuration: transitionDuration,
    opaque: opaque,
    barrierColor: barrierColor,
    barrierDismissible: barrierDismissible,
    barrierLabel: barrierLabel,
    fullscreenDialog: fullscreenDialog,
    maintainState: maintainState,
    pageBuilder: (BuildContext context, Animation<double> animation,
        Animation<double> secondaryAnimation) {
      DStackWidgetBuilder stackWidgetBuilder =
          DStack.instance.pageBuilder(routeName);

      return animatedBuilder(
          context, animation, secondaryAnimation, stackWidgetBuilder(params));
    },
  );
  return pageRoute;
}