flutter_navigation_manager 1.0.2
flutter_navigation_manager: ^1.0.2 copied to clipboard
A comprehensive Flutter navigation management package with route management, navigation services, and shell navigation support.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_navigation_manager/flutter_navigation_manager.dart';
import 'package:go_router/go_router.dart';
import 'my_app.dart';
import 'navigation_manager_provider.dart';
final GlobalKey<NavigatorState> shellNavigatorKey = GlobalKey<NavigatorState>();
void main() {
final GoRouter router = GoRouter(
initialLocation: '/shell-home',
routes: <RouteBase>[
GoRoute(
path: '/',
name: 'home',
builder: (BuildContext context, GoRouterState state) =>
const HomeScreen(),
),
GoRoute(
path: '/details',
name: 'details',
builder: (BuildContext context, GoRouterState state) =>
const DetailsScreen(),
),
ShellRoute(
navigatorKey: shellNavigatorKey,
builder: (context, state, child) => ShellScaffold(child: child),
routes: [
GoRoute(
path: '/shell-home',
name: 'shell-home',
builder: (BuildContext context, GoRouterState state) =>
const ShellHomeScreen(),
routes: [
GoRoute(
path: 'details',
name: 'shell-home-details',
builder: (BuildContext context, GoRouterState state) =>
const ShellHomeDetailsScreen(),
),
],
),
GoRoute(
path: '/shell-details/:id',
name: 'shell-details',
builder: (BuildContext context, GoRouterState state) =>
ShellDetailsScreen(id: state.pathParameters['id'] ?? ''),
routes: [
GoRoute(
path: 'details',
name: 'shell-details-details',
builder: (BuildContext context, GoRouterState state) =>
ShellDetailsDetailsScreen(
id: state.pathParameters['id'] ?? ''),
),
],
),
],
),
],
);
final GoNavigationManager navigationManager = GoNavigationManager(router);
runApp(
NavigationManagerProvider(
navigationManager: navigationManager,
child: MyApp(router: router),
),
);
}