route_definer 2.0.0 copy "route_definer: ^2.0.0" to clipboard
route_definer: ^2.0.0 copied to clipboard

An advanced router for Flutter with support for parsing routes, parameters, and guards.

example/main.dart

import 'package:flutter/material.dart';
import 'package:route_definer/route_definer.dart';
import 'package:route_definer/src/title_observer.dart';

void main() {
  AppRouter.init(
    GlobalRouteDefiner(
      initialRoute: '/',
      title: 'Route Example',
      unauthorizedBuilder: (_, __) =>
          const Scaffold(body: Center(child: Text("Unauthorized"))),
      onUnknownRoute: (_, __) => MaterialPageRoute(
        builder: (_) => const Scaffold(body: Text("404")),
      ),
    ),
    [
      RouteDefiner(path: '/', builder: (_, __) => const HomePage()),
      RouteDefiner(path: '/about', builder: (_, __) => const AboutPage()),
    ],
  );

  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: AppRouter.title,
      initialRoute: AppRouter.initialRoute,
      onGenerateRoute: AppRouter.onGenerateRoute,
      onUnknownRoute: AppRouter.onUnknownRoute,
      navigatorObservers: [
        TitleObserver(
            appTitle: (appName, routeName) => (routeName?.isEmpty ?? true)
                ? appName
                : "$appName | $routeName")
      ],
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: () => Navigator.pushNamed(context, '/about'),
          child: const Text('Go to About'),
        ),
      ),
    );
  }
}

class AboutPage extends StatelessWidget {
  const AboutPage({super.key});
  @override
  Widget build(BuildContext context) {
    return const Scaffold(body: Center(child: Text('About Page')));
  }
}
3
likes
0
points
4
downloads

Publisher

unverified uploader

Weekly Downloads

An advanced router for Flutter with support for parsing routes, parameters, and guards.

Repository (GitHub)
View/report issues

Documentation

Documentation

License

unknown (license)

Dependencies

flutter, web

More

Packages that depend on route_definer