CompatibilityObserver class abstract
Observer for monitoring Navigator 1.0 compatibility layer events.
Provides hooks for tracking pageless routes created through Navigator 1.0 API methods like Navigator.push, showDialog, etc.
Similar to NavigatorObserver but specifically for compatibility layer.
Use Cases
- Analytics: Track usage of legacy Navigator 1.0 APIs
- Migration monitoring: Measure progress of migration to declarative navigation
- Debugging: Log pageless route lifecycle events
Example
class MyCompatibilityObserver extends CompatibilityObserver {
@override
bool willPushPagelessRoute(
Route<dynamic> route,
String routeId,
) {
// Validate or log before processing
print('Will push pageless route: ${route.runtimeType}');
return true; // Allow processing
}
@override
void didCreatePagelessRoute(
Route<dynamic> route,
String routeId,
String routeType,
RouteNode routeNode,
) {
print('Pageless route created: $routeType ($routeId)');
analytics.trackLegacyRoute(routeType);
}
}
// Register in NavigatorCompatibilityOverrides:
NavigationConfigProvider(
navigatorOverrides: NavigatorCompatibilityOverrides(
observer: MyCompatibilityObserver(),
),
child: MaterialApp.router(routerConfig: config),
)
See also:
- NavigatorCompatibilityOverrides, which uses this observer
- NavigatorObserver, Flutter's standard navigation observer
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
didCreatePagelessRoute(
{required RouteNodeReadable routeNodeReadable, required Route route, required String routeId, required String routeType, required RouteNode routeNode}) → void - Called when a pageless route is successfully created and converted.
-
didFailPagelessRoute(
{required RouteNodeReadable routeNodeReadable, required Route route, required Object error, required RouteNode? routeNode}) → void - Called when a pageless route creation attempt fails.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
willPushPagelessRoute(
{required RouteNodeReadable routeNodeReadable, required Route route, required String routeId}) → bool - Called BEFORE a pageless route is processed.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited