WidgetsFlutterBinding class
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:
- GestureBinding, which implements the basics of hit testing.
- SchedulerBinding, which introduces the concepts of frames.
- ServicesBinding, which provides access to the plugin subsystem.
- PaintingBinding, which enables decoding images.
- SemanticsBinding, which supports accessibility.
- RendererBinding, which handles the render tree.
- WidgetsBinding, which handles the widget tree.
- Inheritance
-
- Object
- BindingBase
- WidgetsFlutterBinding
- Mixed-in types
Constructors
Properties
- accessibilityFeatures → AccessibilityFeatures
-
The currently active set of ui.AccessibilityFeatures.
no setterinherited
-
accessibilityFocus
→ ValueNotifier<
int?> -
Listenable that notifies when the accessibility focus on the system have changed.
finalinherited
- buildOwner → BuildOwner?
-
The BuildOwner in charge of executing the build pipeline for the
widget tree rooted at this binding.
no setterinherited
- 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.
no setterinherited
- currentFrameTimeStamp → Duration
-
The time stamp for the frame currently being processed.
no setterinherited
- currentSystemFrameTimeStamp → Duration
-
The raw time stamp as provided by the engine to
dart:ui.PlatformDispatcher.onBeginFrame for the frame currently being
processed.
no setterinherited
- debugBuildingDirtyElements ↔ bool
-
Whether we are currently in a frame. This is used to verify
that frames are not scheduled redundantly.
getter/setter pairinherited
- debugDidSendFirstFrameEvent → bool
-
Whether the first frame has finished building.
no setterinherited
- debugOutstandingSemanticsHandles → int
-
The number of clients registered to listen for semantics.
no setterinherited
- debugSamplingClock → SamplingClock?
-
Overrides the sampling clock for debugging and testing.
no setterinherited
- debugShowWidgetInspectorOverride ↔ bool
-
If true, forces the widget inspector to be visible.
getter/setter pairinherited
-
debugShowWidgetInspectorOverrideNotifier
→ ValueNotifier<
bool> -
Notifier for debugShowWidgetInspectorOverride.
no setterinherited
- defaultBinaryMessenger → BinaryMessenger
-
The default instance of BinaryMessenger.
no setterinherited
- disableAnimations → bool
-
The platform is requesting that animations be disabled or simplified.
no setterinherited
-
endOfFrame
→ Future<
void> -
Returns a Future that completes after the frame completes.
no setterinherited
- firstFrameRasterized → bool
-
Whether the Flutter engine has rasterized the first frame.
no setterinherited
- focusManager → FocusManager
-
The object in charge of the focus tree.
no setterinherited
- framesEnabled → bool
-
Whether frames are currently being scheduled when scheduleFrame is called.
no setterinherited
- gestureArena → GestureArenaManager
-
The gesture arenas used for disambiguating the meaning of sequences of
pointer events.
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasScheduledFrame → bool
-
Whether this scheduler has requested that handleBeginFrame be called soon.
no setterinherited
- imageCache → ImageCache
-
The singleton that implements the Flutter framework's image cache.
no setterinherited
- isRootWidgetAttached → bool
-
Whether the rootElement has been initialized.
no setterinherited
- keyboard → HardwareKeyboard
-
The global singleton instance of HardwareKeyboard, which can be used to
query keyboard states.
no setterinherited
- keyEventManager → KeyEventManager
-
The global singleton instance of KeyEventManager, which is used
internally to dispatch key messages.
no setterinherited
- lifecycleState → AppLifecycleState?
-
Whether the application is visible, and if so, whether it is currently
interactive.
no setterinherited
- locked → bool
-
Whether lockEvents is currently locking events.
no setterinherited
- mouseTracker → MouseTracker
-
The object that manages state about currently connected mice, for hover
notification.
no setterinherited
- pipelineOwner → PipelineOwner
-
Deprecated. Will be removed in a future version of Flutter.
latefinalinherited
- platformDispatcher → PlatformDispatcher
-
The ui.PlatformDispatcher to which this binding is bound.
no setterinherited
- platformMenuDelegate ↔ PlatformMenuDelegate
-
A delegate that communicates with a platform plugin for serializing and
managing platform-rendered menu bars created by PlatformMenuBar.
getter/setter pairinherited
- 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
-
Deprecated. Will be removed in a future version of Flutter.
latefinalinherited
- renderViewElement → Element?
-
Deprecated. Will be removed in a future version of Flutter.
no setterinherited
-
renderViews
→ Iterable<
RenderView> -
The RenderViews managed by this binding.
no setterinherited
- resamplingEnabled ↔ bool
-
Enable pointer event resampling for touch devices by setting
this to true.
getter/setter pairinherited
- restorationManager → RestorationManager
-
The RestorationManager synchronizes the restoration data between
engine and framework.
no setterinherited
- rootElement → Element?
-
The Element that is at the root of the element tree hierarchy.
no setterinherited
- rootPipelineOwner → PipelineOwner
-
The PipelineOwner that is the root of the PipelineOwner tree.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- samplingClock → SamplingClock
-
Provides access to the current DateTime and
StopWatch
objects for sampling.no setterinherited - 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.
getter/setter pairinherited
- schedulerPhase → SchedulerPhase
-
The phase that the scheduler is currently operating under.
no setterinherited
- schedulingStrategy ↔ SchedulingStrategy
-
The strategy to use when deciding whether to run a task or not.
getter/setter pairinherited
- semanticsEnabled → bool
-
Whether semantics information must be collected.
no setterinherited
- sendFramesToEngine → bool
-
Whether frames produced by drawFrame are sent to the engine.
no setterinherited
- systemFonts → Listenable
-
Listenable that notifies when the available fonts on the system have
changed.
no setterinherited
- transientCallbackCount → int
-
The current number of transient frame callbacks scheduled.
no setterinherited
-
waitUntilFirstFrameRasterized
→ Future<
void> -
A future that completes when the Flutter engine has rasterized the first
frame.
no setterinherited
- window → SingletonFlutterWindow
-
Deprecated. Will be removed in a future version of Flutter.
no setterinherited
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, {String debugLabel = 'callback'}) → void -
Schedule a callback for the end of this frame.
inherited
-
addRenderView(
RenderView view) → void -
Adds a RenderView to this binding.
inherited
-
addSemanticsEnabledListener(
VoidCallback listener) → void -
Adds a
listener
to be called when semanticsEnabled changes.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 rootElement, creating it if
necessary.
inherited
-
attachToBuildOwner(
RootWidget widget) → void -
Called by attachRootWidget to attach the provided RootWidget to the
buildOwner.
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.
inherited
-
createCanvas(
PictureRecorder recorder) → Canvas -
Create a Canvas from a PictureRecorder.
inherited
-
createImageCache(
) → ImageCache -
Creates the ImageCache singleton (accessible via imageCache).
inherited
-
createPictureRecorder(
) → PictureRecorder -
Create a PictureRecorder.
inherited
-
createRestorationManager(
) → RestorationManager -
Creates the RestorationManager instance available via
restorationManager.
inherited
-
createRootPipelineOwner(
) → PipelineOwner -
Creates the PipelineOwner that serves as the root of the pipeline owner
tree (rootPipelineOwner).
inherited
-
createSceneBuilder(
) → SceneBuilder -
Create a SceneBuilder.
inherited
-
createSemanticsUpdateBuilder(
) → SemanticsUpdateBuilder -
Creates an empty semantics update builder.
inherited
-
createViewConfigurationFor(
RenderView renderView) → ViewConfiguration -
Returns a ViewConfiguration configured for the provided RenderView
based on the current environment.
inherited
-
debugAssertNoPendingPerformanceModeRequests(
String reason) → bool -
Asserts that there are no pending performance mode requests in debug mode.
inherited
-
debugAssertNoTimeDilation(
String reason) → bool -
Asserts that there is no artificial time dilation in debug mode.
inherited
-
debugAssertNoTransientCallbacks(
String reason) → bool -
Asserts that there are no registered transient callbacks; if
there are, prints their locations and throws an exception.
inherited
-
debugCheckZone(
String entryPoint) → bool -
Checks that the current Zone is the same as that which was used
to initialize the binding.
inherited
-
debugGetRequestedPerformanceMode(
) → DartPerformanceMode? -
Returns the current DartPerformanceMode requested or
null
if no requests have been made.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.inherited -
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.inherited -
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.
inherited
-
ensureSemantics(
) → SemanticsHandle -
Creates a new SemanticsHandle and requests the collection of semantics
information.
inherited
-
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 -
exitApplication(
AppExitType exitType, [int exitCode = 0]) → Future< AppExitResponse> -
Exits the application by calling the native application API method for
exiting an application cleanly.
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.
inherited
-
handleLocaleChanged(
) → void -
Called when the system locale changes.
inherited
-
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< bool> -
Called when the system pops the current route.
inherited
-
handlePushRoute(
String route) → Future< bool> -
Called when the host tells the app to push a new route onto the
navigator.
inherited
-
handleRequestAppExit(
) → Future< AppExitResponse> -
Handles any requests for application exit that may be received on the
SystemChannels.platform method channel.
inherited
-
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
-
handleViewFocusChanged(
ViewFocusEvent event) → void -
Called whenever the PlatformDispatcher receives a notification that the
focus state on a view has changed.
inherited
-
hitTest(
HitTestResult result, Offset position) → void -
Deprecated. Use hitTestInView instead.
inherited
-
hitTestInView(
HitTestResult result, Offset position, int viewId) → void -
Determine which HitTestTarget objects are located at a given position in
the specified view.
inherited
-
initializationComplete(
) → Future< void> -
Alert the engine that the binding is registered. This instructs the engine to
register its top level window handler on Windows. This signals that the app
is able to process "System.requestAppExit" signals from the engine.
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.
inherited
-
initMouseTracker(
[MouseTracker? tracker]) → void -
Creates a MouseTracker which manages state about currently connected
mice, for hover notification.
inherited
-
initServiceExtensions(
) → void -
Called when the binding is initialized, to register service
extensions.
inherited
-
instantiateImageCodecFromBuffer(
ImmutableBuffer buffer, {int? cacheWidth, int? cacheHeight, bool allowUpscaling = false}) → Future< Codec> -
Calls through to dart:ui.instantiateImageCodecFromBuffer from ImageCache.
inherited
-
instantiateImageCodecWithSize(
ImmutableBuffer buffer, {TargetImageSizeCallback? getTargetSize}) → Future< Codec> -
Calls through to dart:ui.instantiateImageCodecWithSize from ImageCache.
inherited
-
lockEvents(
Future< void> callback()) → Future<void> -
Locks the dispatching of asynchronous events and callbacks until the
callback's future completes.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent 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
-
performSemanticsAction(
SemanticsActionEvent action) → void -
Called whenever the platform requests an action to be performed on a
SemanticsNode.
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.
inherited
-
readInitialLifecycleStateFromNativeWindow(
) → void -
Initializes the lifecycleState with the
dart:ui.PlatformDispatcher.initialLifecycleState.
inherited
-
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.)
inherited
-
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.)
inherited
-
registerServiceExtension(
{required String name, required ServiceExtensionCallback callback}) → void -
Registers a service extension method with the given name (full name
"ext.flutter.name").
inherited
-
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.
inherited
-
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.
inherited
-
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
-
removeRenderView(
RenderView view) → void -
Removes a RenderView previously added with addRenderView from the
binding.
inherited
-
removeSemanticsEnabledListener(
VoidCallback listener) → void -
Removes a
listener
added by addSemanticsEnabledListener.inherited -
removeTimingsCallback(
TimingsCallback callback) → void -
Removes a callback that was earlier added by addTimingsCallback.
inherited
-
requestPerformanceMode(
DartPerformanceMode mode) → PerformanceModeRequestHandle? -
Request a specific DartPerformanceMode.
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.
inherited
-
resetInternalState(
) → void -
Allows the test framework to reset the lifecycle state and framesEnabled
back to their initial values.
inherited
-
scheduleAttachRootWidget(
Widget rootWidget) → void -
Schedules a Timer for attaching the root widget.
inherited
-
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 givenpriority
.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
-
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
-
wrapWithDefaultView(
Widget rootWidget) → Widget -
Used by runApp to wrap the provided
rootWidget
in the default View.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.