WidgetsFlutterBinding class Null safety

A concrete binding for applications based on the Widgets framework.

This is the glue that binds the framework to the Flutter engine.

When using the widgets framework, this binding, or one that implements the same interfaces, must be used. The following mixins are used to implement this binding:

Inheritance
Mixed in types

Constructors

WidgetsFlutterBinding()

Properties

accessibilityFeatures AccessibilityFeatures
The currently active set of AccessibilityFeatures.
read-onlyinherited
buildOwner BuildOwner?
The BuildOwner in charge of executing the build pipeline for the widget tree rooted at this binding.
read-onlyinherited
channelBuffers ChannelBuffers
The low level buffering and dispatch mechanism for messages sent by plugins on the engine side to their corresponding plugin code on the framework side.
read-onlyinherited
currentFrameTimeStamp Duration
The time stamp for the frame currently being processed.
read-onlyinherited
currentSystemFrameTimeStamp Duration
The raw time stamp as provided by the engine to dart:ui.PlatformDispatcher.onBeginFrame for the frame currently being processed.
read-onlyinherited
debugBuildingDirtyElements bool
Whether we are currently in a frame. This is used to verify that frames are not scheduled redundantly.
protected">@protectedread / writeinherited
debugDidSendFirstFrameEvent bool
Whether the first frame has finished building.
read-onlyinherited
debugSamplingClock SamplingClock?
Overrides the sampling clock for debugging and testing.
protected">@protectedread-onlyinherited
defaultBinaryMessenger BinaryMessenger
The default instance of BinaryMessenger.
read-onlyinherited
disableAnimations bool
The platform is requesting that animations be disabled or simplified.
read-onlyinherited
endOfFrame Future<void>
Returns a Future that completes after the frame completes.
read-onlyinherited
firstFrameRasterized bool
Whether the Flutter engine has rasterized the first frame.
read-onlyinherited
focusManager FocusManager
The object in charge of the focus tree.
read-onlyinherited
framesEnabled bool
Whether frames are currently being scheduled when scheduleFrame is called.
read-onlyinherited
gestureArena GestureArenaManager
The gesture arenas used for disambiguating the meaning of sequences of pointer events.
finalinherited
hashCode int
The hash code for this object.
read-onlyinherited
hasScheduledFrame bool
Whether this scheduler has requested that handleBeginFrame be called soon.
read-onlyinherited
imageCache ImageCache
The singleton that implements the Flutter framework's image cache.
read-onlyinherited
isRootWidgetAttached bool
Whether the renderViewElement has been initialized.
read-onlyinherited
keyboard HardwareKeyboard
The global singleton instance of HardwareKeyboard, which can be used to query keyboard states.
read-onlyinherited
keyEventManager KeyEventManager
The global singleton instance of KeyEventManager, which is used internally to dispatch key messages.
read-onlyinherited
lifecycleState AppLifecycleState?
Whether the application is visible, and if so, whether it is currently interactive.
read-onlyinherited
locked bool
Whether lockEvents is currently locking events.
protected">@protectedread-onlyinherited
mouseTracker MouseTracker
The object that manages state about currently connected mice, for hover notification.
read-onlyinherited
pipelineOwner PipelineOwner
The render tree's owner, which maintains dirty state for layout, composite, paint, and accessibility semantics.
read-onlyinherited
platformDispatcher PlatformDispatcher
The ui.PlatformDispatcher to which this binding is bound.
read-onlyinherited
platformMenuDelegate PlatformMenuDelegate
A delegate that communicates with a platform plugin for serializing and managing platform-rendered menu bars created by PlatformMenuBar.
read / writeinherited
pointerRouter PointerRouter
A router that routes all pointer events received from the engine.
finalinherited
pointerSignalResolver PointerSignalResolver
The resolver used for determining which widget handles a PointerSignalEvent.
finalinherited
renderView RenderView
The render tree that's attached to the output surface.
read / writeinherited
renderViewElement Element?
The Element that is at the root of the hierarchy (and which wraps the RenderView object at the root of the rendering hierarchy).
read-onlyinherited
resamplingEnabled bool
Enable pointer event resampling for touch devices by setting this to true.
read / writeinherited
restorationManager RestorationManager
The RestorationManager synchronizes the restoration data between engine and framework.
read-onlyinherited
runtimeType Type
A representation of the runtime type of the object.
read-onlyinherited
samplingOffset Duration
Offset relative to current frame time that should be used for resampling. The samplingOffset is expected to be negative. Non-negative samplingOffset is allowed but will effectively disable resampling.
read / writeinherited
schedulerPhase SchedulerPhase
The phase that the scheduler is currently operating under.
read-onlyinherited
schedulingStrategy SchedulingStrategy
The strategy to use when deciding whether to run a task or not.
read / writeinherited
sendFramesToEngine bool
Whether frames produced by drawFrame are sent to the engine.
read-onlyinherited
systemFonts Listenable
Listenable that notifies when the available fonts on the system have changed.
read-onlyinherited
transientCallbackCount int
The current number of transient frame callbacks scheduled.
read-onlyinherited
waitUntilFirstFrameRasterized Future<void>
A future that completes when the Flutter engine has rasterized the first frame.
read-onlyinherited
window SingletonFlutterWindow
The main window to which this binding is bound.
read-onlyinherited

Methods

addObserver(WidgetsBindingObserver observer) → void
Registers the given object as a binding observer. Binding observers are notified when various application events occur, for example when the system locale changes. Generally, one widget in the widget tree registers itself as a binding observer, and converts the system state into inherited widgets.
inherited
addPersistentFrameCallback(FrameCallback callback) → void
Adds a persistent frame callback.
inherited
addPostFrameCallback(FrameCallback callback) → void
Schedule a callback for the end of this frame.
inherited
addTimingsCallback(TimingsCallback callback) → void
Add a TimingsCallback that receives FrameTiming sent from the engine.
inherited
allowFirstFrame() → void
Called after deferFirstFrame to tell the framework that it is ok to send the first frame to the engine now.
inherited
attachRootWidget(Widget rootWidget) → void
Takes a widget and attaches it to the renderViewElement, creating it if necessary.
inherited
cancelFrameCallbackWithId(int id) → void
Cancels the transient frame callback with the given id.
inherited
cancelPointer(int pointer) → void
Dispatch a PointerCancelEvent for the given pointer soon.
inherited
computePlatformResolvedLocale(List<Locale> supportedLocales) Locale?
Computes the locale the current platform would resolve to.
inherited
createBinaryMessenger() BinaryMessenger
Creates a default BinaryMessenger instance that can be used for sending platform messages.
protected">@protectedinherited
createImageCache() ImageCache
Creates the ImageCache singleton (accessible via imageCache).
protected">@protectedinherited
createRestorationManager() RestorationManager
Creates the RestorationManager instance available via restorationManager.
protected">@protectedinherited
createSemanticsUpdateBuilder() SemanticsUpdateBuilder
Creates an empty semantics update builder.
inherited
createViewConfiguration() ViewConfiguration
Returns a ViewConfiguration configured for the RenderView based on the current environment.
inherited
debugAssertNoTransientCallbacks(String reason) bool
Asserts that there are no registered transient callbacks; if there are, prints their locations and throws an exception.
inherited
deferFirstFrame() → void
Tell the framework to not send the first frames to the engine until there is a corresponding call to allowFirstFrame.
inherited
dispatchAccessibilityFeaturesChanged() → void
Notify all the observers that the active set of AccessibilityFeatures has changed (using WidgetsBindingObserver.didChangeAccessibilityFeatures), giving them the features argument.
mustCallSuper">@mustCallSuperprotected">@protectedinherited
dispatchEvent(PointerEvent event, HitTestResult? hitTestResult) → void
Dispatch an event to pointerRouter and the path of a hit test result.
inherited
dispatchLocalesChanged(List<Locale>? locales) → void
Notify all the observers that the locale has changed (using WidgetsBindingObserver.didChangeLocales), giving them the locales argument.
mustCallSuper">@mustCallSuperprotected">@protectedinherited
drawFrame() → void
Pump the build and rendering pipeline to generate a frame.
inherited
ensureFrameCallbacksRegistered() → void
Ensures callbacks for PlatformDispatcher.onBeginFrame and PlatformDispatcher.onDrawFrame are registered.
protected">@protectedinherited
ensureVisualUpdate() → void
Schedules a new frame using scheduleFrame if this object is not currently producing a frame.
inherited
evict(String asset) → void
Called in response to the ext.flutter.evict service extension.
inherited
handleAccessibilityFeaturesChanged() → void
Called when the platform accessibility features change.
inherited
handleAppLifecycleStateChanged(AppLifecycleState state) → void
Called when the application lifecycle state changes.
inherited
handleBeginFrame(Duration? rawTimeStamp) → void
Called by the engine to prepare the framework to produce a new frame.
inherited
handleDrawFrame() → void
Called by the engine to produce a new frame.
inherited
handleEvent(PointerEvent event, HitTestEntry<HitTestTarget> entry) → void
Override this method to receive events.
inherited
handleEventLoopCallback() bool
Execute the highest-priority task, if it is of a high enough priority.
visibleForTesting">@visibleForTestinginherited
handleLocaleChanged() → void
Called when the system locale changes.
mustCallSuper">@mustCallSuperprotected">@protectedinherited
handleMemoryPressure() → void
Called when the operating system notifies the application of a memory pressure situation.
inherited
handleMetricsChanged() → void
Called when the system metrics change.
inherited
handlePlatformBrightnessChanged() → void
Called when the platform brightness changes.
inherited
handlePointerEvent(PointerEvent event) → void
Dispatch an event to the targets found by a hit test on its position.
inherited
handlePopRoute() Future<void>
Called when the system pops the current route.
protected">@protectedinherited
handlePushRoute(String route) Future<void>
Called when the host tells the app to push a new route onto the navigator.
mustCallSuper">@mustCallSuperprotected">@protectedinherited
handleSystemMessage(Object systemMessage) Future<void>
Handler called for messages received on the SystemChannels.system message channel.
inherited
handleTextScaleFactorChanged() → void
Called when the platform text scale factor changes.
inherited
hitTest(HitTestResult result, Offset position) → void
Determine which HitTestTarget objects are located at a given position.
inherited
initInstances() → void
The initialization method. Subclasses override this method to hook into the platform and otherwise configure their services. Subclasses must call "super.initInstances()".
inherited
initLicenses() → void
Adds relevant licenses to the LicenseRegistry.
mustCallSuper">@mustCallSuperprotected">@protectedinherited
initMouseTracker([MouseTracker? tracker]) → void
Creates a MouseTracker which manages state about currently connected mice, for hover notification.
visibleForTesting">@visibleForTestinginherited
initRenderView() → void
Creates a RenderView object to be the root of the RenderObject rendering tree, and initializes it so that it will be rendered when the next frame is requested.
inherited
initServiceExtensions() → void
Called when the binding is initialized, to register service extensions.
inherited
instantiateImageCodec(Uint8List bytes, {int? cacheWidth, int? cacheHeight, bool allowUpscaling = false}) Future<Codec>
Calls through to dart:ui.instantiateImageCodec from ImageCache.
Deprecated('Use instantiateImageCodecFromBuffer with an ImmutableBuffer instance instead. ' 'This feature was deprecated after v2.13.0-1.0.pre.')">@Deprecated('Use instantiateImageCodecFromBuffer with an ImmutableBuffer instance instead. ' 'This feature was deprecated after v2.13.0-1.0.pre.')inherited
instantiateImageCodecFromBuffer(ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool allowUpscaling = false}) Future<Codec>
Calls through to dart:ui.instantiateImageCodecFromBuffer from ImageCache.
inherited
lockEvents(Future<void> callback()) Future<void>
Locks the dispatching of asynchronous events and callbacks until the callback's future completes.
protected">@protectedinherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed.
inherited
performReassemble() Future<void>
This method is called by reassembleApplication to actually cause the application to reassemble, e.g. after a hot reload.
inherited
postEvent(String eventKind, Map<String, dynamic> eventData) → void
All events dispatched by a BindingBase use this method instead of calling developer.postEvent directly so that tests for BindingBase can track which events were dispatched by overriding this method.
protected">@protectedinherited
readInitialLifecycleStateFromNativeWindow() → void
Initializes the lifecycleState with the dart:ui.PlatformDispatcher.initialLifecycleState.
protected">@protectedinherited
reassembleApplication() Future<void>
Cause the entire application to redraw, e.g. after a hot reload.
inherited
registerBoolServiceExtension({required String name, required AsyncValueGetter<bool> getter, required AsyncValueSetter<bool> setter}) → void
Registers a service extension method with the given name (full name "ext.flutter.name"), which takes a single argument "enabled" which can have the value "true" or the value "false" or can be omitted to read the current value. (Any value other than "true" is considered equivalent to "false". Other arguments are ignored.)
protected">@protectedinherited
registerNumericServiceExtension({required String name, required AsyncValueGetter<double> getter, required AsyncValueSetter<double> setter}) → void
Registers a service extension method with the given name (full name "ext.flutter.name"), which takes a single argument with the same name as the method which, if present, must have a value that can be parsed by double.parse, and can be omitted to read the current value. (Other arguments are ignored.)
protected">@protectedinherited
registerServiceExtension({required String name, required ServiceExtensionCallback callback}) → void
Registers a service extension method with the given name (full name "ext.flutter.name").
protected">@protectedinherited
registerSignalServiceExtension({required String name, required AsyncCallback callback}) → void
Registers a service extension method with the given name (full name "ext.flutter.name"), which takes no arguments and returns no value.
protected">@protectedinherited
registerStringServiceExtension({required String name, required AsyncValueGetter<String> getter, required AsyncValueSetter<String> setter}) → void
Registers a service extension method with the given name (full name "ext.flutter.name"), which optionally takes a single argument with the name "value". If the argument is omitted, the value is to be read, otherwise it is to be set. Returns the current value.
protected">@protectedinherited
removeObserver(WidgetsBindingObserver observer) bool
Unregisters the given observer. This should be used sparingly as it is relatively expensive (O(N) in the number of registered observers).
inherited
removeTimingsCallback(TimingsCallback callback) → void
Removes a callback that was earlier added by addTimingsCallback.
inherited
resetEpoch() → void
Prepares the scheduler for a non-monotonic change to how time stamps are calculated.
inherited
resetFirstFrameSent() → void
Call this to pretend that no frames have been sent to the engine yet.
inherited
resetGestureBinding() → void
Reset states of GestureBinding.
protected">@protectedinherited
scheduleAttachRootWidget(Widget rootWidget) → void
Schedules a Timer for attaching the root widget.
protected">@protectedinherited
scheduleForcedFrame() → void
Schedules a new frame by calling dart:ui.PlatformDispatcher.scheduleFrame.
inherited
scheduleFrame() → void
If necessary, schedules a new frame by calling dart:ui.PlatformDispatcher.scheduleFrame.
inherited
scheduleFrameCallback(FrameCallback callback, {bool rescheduling = false}) int
Schedules the given transient frame callback.
inherited
scheduleTask<T>(TaskCallback<T> task, Priority priority, {String? debugLabel, Flow? flow}) Future<T>
Schedules the given task with the given priority and returns a Future that completes to the task's eventual return value.
inherited
scheduleWarmUpFrame() → void
Schedule a frame to run as soon as possible, rather than waiting for the engine to request a frame in response to a system "Vsync" signal.
inherited
setSemanticsEnabled(bool enabled) → void
Whether the render tree associated with this binding should produce a tree of SemanticsNode objects.
inherited
setSystemUiChangeCallback(SystemUiChangeCallback? callback) → void
Sets the callback for the SystemChrome.systemUIChange method call received on the SystemChannels.platform channel.
inherited
toString() String
A string representation of this object.
inherited
unlocked() → void
Called by lockEvents when events get unlocked.
inherited

Operators

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

Static Methods

ensureInitialized() WidgetsBinding
Returns an instance of the binding that implements WidgetsBinding. If no binding has yet been initialized, the WidgetsFlutterBinding class is used to create and initialize one.