builder<T> static method

Route<T> builder<T>(
  1. BuildContext context,
  2. Widget child,
  3. AutoRoutePage<T> page
)

Implementation

static Route<T> builder<T>(
  BuildContext context,
  Widget child,
  AutoRoutePage<T> page,
) => PageRouteBuilder<T>(
  opaque: false,
  barrierDismissible: true,
  barrierColor: Colors.transparent,
  fullscreenDialog: page.fullscreenDialog,
  settings: page,
  transitionDuration: const Duration(milliseconds: 150),
  reverseTransitionDuration: const Duration(milliseconds: 150),
  pageBuilder: (_, _, _) => Builder(
    builder: (context) {
      final mediaQuery = context.mediaQuery;

      return CustomSingleChildLayout(
        delegate: _FollowerDialogRouteLayout(
          followerAnchor: DropDialogArguments.followerAlignment,
          position: DropDialogArguments.position,
          textDirection: Directionality.of(context),
          topPadding: mediaQuery.padding.top,
          bottomPadding: mediaQuery.padding.bottom,
          offset: DropDialogArguments.offset,
          avoidOverflow: true,
        ),
        child: child,
      );
    },
  ),
  transitionsBuilder: (context, animation, secondaryAnimation, child) {
    final curved = CurvedAnimation(
      parent: animation,
      curve: Curves.easeOut,
    );

    return FadeTransition(
      opacity: curved,
      child: SlideTransition(
        position: Tween<Offset>(
          begin: const Offset(0, 0.01),
          end: Offset.zero,
        ).animate(curved),
        child: child,
      ),
    );
  },
);