navigation_without_context 0.0.3+1 copy "navigation_without_context: ^0.0.3+1" to clipboard
navigation_without_context: ^0.0.3+1 copied to clipboard

A Flutter package that enables global navigation without requiring BuildContext, using a clean abstraction and GetIt for dependency injection.

navigation_without_context #

A Flutter package that allows navigation without needing a BuildContext, built on top of GetIt and Flutter's navigation system.

Features #

  • Navigate using route names or Route objects
  • Replace routes or remove routes until a condition is met
  • Check if navigation stack can pop
  • Go back with or without a result
  • Pop until a specific route
  • Access current RouteSettings

Getting Started #

Installation #

Add this to your pubspec.yaml:

dependencies:
  navigation_without_context: <latest_version>

Then run:

flutter pub get

Import #

import 'package:navigation_without_context/navigation_without_context.dart';

Usage #

Step 1: Register the Navigator #

void main() {
  registerNavigatorGetItDi();
  runApp(MyApp());
}

Step 2: Add navigatorKey to MaterialApp #

MaterialApp(
  navigatorKey: navigator.navigatorKey,
  // other properties...
)

Step 3: Use Anywhere #

navigator.pushNamed('/home');

navigator.goBack();

API #

The IAppNavigator interface includes:

Future<T?> pushNamed<T>(String routeName, {Object? args});
Future<T?> push<T>(Route<T> route);
Future<T?> pushReplacementNamed<T, TO>(String routeName, {Object? args, TO? result});
Future<T?> pushNamedAndRemoveUntil<T>(String routeName, {Object? args, RoutePredicate? predicate});
Future<T?> pushAndRemoveUntil<T>(Route<T> route, {RoutePredicate? predicate});
Future<bool?> maybePop<T>([T? result]);
bool canPop();
void goBack<T>({T? result});
void popUntil(String route);
RouteSettings? pageSettings(BuildContext context);

Dependencies #

  • get_it_di_global_variable: Used for dependency injection.

License #

MIT

0
likes
140
points
115
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter package that enables global navigation without requiring BuildContext, using a clean abstraction and GetIt for dependency injection.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter, get_it_di_global_variable

More

Packages that depend on navigation_without_context