import 'dart:ui'; import 'package:flutter/cupertino.dart'; typedef PageDataLisener = void Function(dynamic data); //滑动效果 class CustomRouteSlide extends PageRouteBuilder { final Widget widget; CustomRouteSlide(this.widget) : super( transitionDuration: const Duration(milliseconds: 500), pageBuilder: (BuildContext context, Animation animation1, Animation animation2) { return widget; }, transitionsBuilder: (BuildContext context, Animation animation1, Animation animation2, Widget child) { return SlideTransition( position: Tween( begin: Offset(1.0, 0.0), end: Offset(0.0, 0.0)) .animate(CurvedAnimation( parent: animation1, curve: Curves.fastOutSlowIn)), child: child, ); }); } class NavigatorUtil { static void navigateToNextPage(BuildContext context, PageRoute route, PageDataLisener? dataLisener) async { final result = await Navigator.of(context).push(route); dataLisener!(result); } static void navigateToNextPageWithFinish( BuildContext context, PageRoute route) { Navigator.of(context).pushReplacement(route); } }