import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:link/view/account.dart'; import 'package:link/view/add_link.dart'; import 'package:link/view/base_info_step1.dart'; import 'package:link/view/begin_add_link.dart'; import 'package:link/view/bind.dart'; import 'package:link/view/choose_country.dart'; import 'package:link/view/choose_social.dart'; import 'package:link/view/choose_theme.dart'; import 'package:link/view/demo1.dart'; import 'package:link/view/demo2.dart'; import 'package:link/view/edit_info.dart'; import 'package:link/view/edit_link.dart'; import 'package:link/view/history.dart'; import 'package:link/view/home_preview.dart'; import 'package:link/view/index.dart'; import 'package:link/view/invit_code.dart'; import 'package:link/view/login.dart'; import 'package:link/view/my_page.dart'; import 'package:link/view/signup.dart'; import 'package:link/view/signup_code.dart'; import 'package:link/view/web.dart'; import '../view/base_info_step2.dart'; import '../view/edit.dart'; import '../view/welcome.dart'; import 'IndexMiddleWare.dart'; import 'LinkMiddleWare.dart'; class routes { static List pages = [ GetPage( name: '/', page: () => const IndexScreen(), middlewares: [IndexMiddleWare()]), GetPage( name: '/welcome', page: () => const WelcomePage(), title: 'welcome'), GetPage( name: '/invite_code', page: () => const InviteCode(), title: '请输入邀请码'), GetPage(name: '/signup', page: () => SignUp(), title: '注册'), GetPage(name: '/login', page: () => Login(), title: '登录'), GetPage(name: '/verify_code', page: () => const VerifyCode(), title: '注册'), GetPage(name: '/edit_nick_info', page: () => const EditAvatrNick()), GetPage(name: '/edit_base_info', page: () => const EditBaseInfo()), GetPage(name: '/begin_add_first_link', page: () => const BeginAddLink()), GetPage(name: '/choose_country', page: () => const ChooseCountry()), GetPage(name: '/choose_social', page: () => const ChooseSocial()), GetPage(name: '/add_link', page: () => const AddLink()), GetPage(name: '/my_index', page: () => const MyIndex()), GetPage(name: '/edit_info', page: () => const EditInfo()), GetPage(name: '/edt_home', page: () => const EditScreen()), GetPage(name: '/account', page: () => const Account()), GetPage(name: '/history', page: () => const History()), GetPage(name: '/edit_link', page: () => const EditLink()), GetPage(name: '/choose_theme', page: () => const ChooseTheme()), GetPage(name: '/home_preview', page: () => const HomePreview()), GetPage(name: '/bind', page: () => const Bind(), title: '绑定'), GetPage(name: '/web', page: () => const WebPage()) ]; } class MyRoutes { static const String FIRST_PAGE = '/first_page'; static const String SECOND_PAGE = '/second_page'; } class RouteGenerator { static Route generateRoute(RouteSettings? settings) { switch (settings!.name) { case MyRoutes.FIRST_PAGE: return _GeneratePageRoute(widget: const Demo1(), routeName: settings.name!); case MyRoutes.SECOND_PAGE: return _GeneratePageRoute(widget: Demo2(), routeName: settings.name!); default: return _GeneratePageRoute(widget: Demo1(), routeName: settings.name!); } } } class _GeneratePageRoute extends PageRouteBuilder { final Widget widget; final String routeName; _GeneratePageRoute({required this.widget, required this.routeName}) : super( settings: RouteSettings(name: routeName), pageBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation) { return widget; }, transitionDuration: Duration(milliseconds: 500), transitionsBuilder: (BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { return SlideTransition( textDirection: TextDirection.rtl, position: Tween( begin: Offset(1.0, 0.0), end: Offset.zero, ).animate(animation), child: child, ); }); }