FlutterSExtensions class

Manages shared Flutter context and view dependencies for extension getters.

This singleton-style utility stores a FlutterView and derived MediaQueryData so extension properties like 0.2.screenWidth can be accessed without passing a BuildContext explicitly.

Initialization patterns:

  • Lazy: If you don't call init, the first access attempts a lazy initialization using WidgetsBinding.instance.platformDispatcher.views.first. This generally works after runApp, but will throw if no view is available (e.g., early in tests).
  • Explicit: Call init with a BuildContext as early as possible. A convenient place is MaterialApp.builder or WidgetsApp.builder:
MaterialApp(
  builder: (context, child) {
    FlutterSExtensions.update(context); // keeps data fresh on hot reload
    return child!;
  },
  home: const MyHomePage(),
)

Hot reload: Use update inside a widget builder to refresh the stored FlutterView and MediaQueryData whenever the tree rebuilds, including hot reloads and route changes.

Mixed-in types

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

didChangeAccessibilityFeatures() → void
Called when the system changes the set of currently active accessibility features.
inherited
didChangeAppLifecycleState(AppLifecycleState state) → void
Called when the system puts the app in the background or returns the app to the foreground.
inherited
didChangeLocales(List<Locale>? locales) → void
Called when the system tells the app that the user's locale has changed. For example, if the user changes the system language settings.
inherited
didChangeMetrics() → void
Reacts to metric changes (e.g., orientation, window resize) and refreshes the cached MediaQueryData. This supports dynamic screen changes.
override
didChangePlatformBrightness() → void
Called when the platform brightness changes.
inherited
didChangeTextScaleFactor() → void
Called when the platform's text scale factor changes.
inherited
didChangeViewFocus(ViewFocusEvent event) → void
Called whenever the PlatformDispatcher receives a notification that the focus state on a view has changed.
inherited
didHaveMemoryPressure() → void
Called when the system is running low on memory.
inherited
didPopRoute() Future<bool>
Called when the system tells the app to pop the current route, such as after a system back button press or back gesture.
inherited
didPushRoute(String route) Future<bool>
Called when the host tells the application to push a new route onto the navigator.
inherited
didPushRouteInformation(RouteInformation routeInformation) Future<bool>
Called when the host tells the application to push a new RouteInformation and a restoration state onto the router.
inherited
didRequestAppExit() Future<AppExitResponse>
Called when a request is received from the system to exit the application.
inherited
handleCancelBackGesture() → void
Called when a predictive back gesture is canceled, indicating that no navigation should occur.
inherited
handleCommitBackGesture() → void
Called when a predictive back gesture is finished successfully, indicating that the current route should be popped.
inherited
handleStartBackGesture(PredictiveBackEvent backEvent) bool
Called at the start of a predictive back gesture.
inherited
handleUpdateBackGestureProgress(PredictiveBackEvent backEvent) → void
Called when a predictive back gesture moves.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

isInitialized bool
Returns whether initialization has happened and the data is ready.
no setter

Static Methods

init([BuildContext? context]) → void
Initialize the shared context.
mediaQuery() MediaQueryData
Returns the current MediaQueryData, ensuring initialization.
reset() → void
Reset stored references. Useful for tests or full app restarts.
update(BuildContext context) → void
Update the stored view and media using the latest context.