Files
iroute/lib/v11/app/unit_app.dart
toly 7b16b52761 24
2023-12-10 15:25:12 +08:00

55 lines
2.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';
import '../pages/empty/empty_page.dart';
import 'navigation/router/root.dart';
import '../pages/sort/provider/state.dart';
import 'navigation/helper/router_history.dart';
import 'navigation/transition/fade_page_transitions_builder.dart';
class UnitApp extends StatelessWidget {
UnitApp({super.key});
final GoRouter _router = GoRouter(
routes: <RouteBase>[rootRoute],
onException: (BuildContext ctx,GoRouterState state, GoRouter router){
router.go('/404', extra: state.uri.toString());
},
// errorBuilder: (_,state) {
// return EmptyPage(msg: '无法访问: ${state.matchedLocation}',);
// }
);
@override
Widget build(BuildContext context) {
return SortStateScope(
notifier: SortState(),
child: RouterHistoryScope(
notifier: RouterHistory(_router.routerDelegate, exclusives: ['/login']),
child: MaterialApp.router(
routerConfig: _router,
theme: ThemeData(
fontFamily: "宋体",
scaffoldBackgroundColor: Colors.white,
pageTransitionsTheme: const PageTransitionsTheme(builders: {
TargetPlatform.android: ZoomPageTransitionsBuilder(),
TargetPlatform.iOS: CupertinoPageTransitionsBuilder(),
TargetPlatform.macOS: FadePageTransitionsBuilder(),
TargetPlatform.windows: FadePageTransitionsBuilder(),
TargetPlatform.linux: FadePageTransitionsBuilder(),
}),
appBarTheme: const AppBarTheme(
elevation: 0,
iconTheme: IconThemeData(color: Colors.black),
titleTextStyle: TextStyle(
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.bold,
))),
debugShowCheckedModeBanner: false,
// home: AppNavigation()
),
),
);
}
}