WidgetEventMixin<T extends StatefulWidget> mixin
Mixin for State classes that require knowledge of changing WidgetEvent values for their child widgets.
This mixin does nothing by mere application to a State class, but is
helpful when writing build
methods that include child InkWell,
GestureDetector, MouseRegion, or Focus widgets. Instead of manually
creating handlers for each type of user interaction, such State classes can
instead provide a ValueChanged<bool>
function and allow WidgetEventMixin
to manage the set of active WidgetEvents, and the calling of setState
as necessary.
{@tool snippet} This example shows how to write a StatefulWidget that uses the WidgetEventMixin class to watch WidgetEvent values.
class MyWidget extends StatefulWidget {
const MyWidget({
Key? key,
required this.color,
required this.child,
}) : super(key: key);
final Color color;
final Widget child;
@override
State<MyWidget> createState() => MyWidgetState();
}
class MyWidgetState extends State<MyWidget> with WidgetEventMixin<MyWidget> {
@override
void initState() {
super.initState();
initWidgetEvents();
}
@override
Widget build(BuildContext context) {
return InkWell(
onFocusChange: widgetEvents.emit(WidgetEvent.focused),
child: Container(
color: DrivenProperty.evaluate<Color>(widget.color, widgetEvents.value),
child: widget.child,
),
);
}
}
{@end-tool}
- Superclass constraints
- State<
T>
- State<
Properties
- context → BuildContext
-
The location in the tree where this widget builds.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- mounted → bool
-
Whether this State object is currently in a tree.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- widget → T
-
The current configuration.
no setterinherited
- widgetEvents → WidgetEventController
-
Manages a set of WidgetEvents and notifies listeners of changes.
no setter
Methods
-
activate(
) → void -
Called when this object is reinserted into the tree after having been
removed via deactivate.
inherited
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
inherited
-
deactivate(
) → void -
Called when this object is removed from the tree.
inherited
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
override
-
didChangeDependencies(
) → void -
Called when a dependency of this State object changes.
inherited
-
didChangeWidgetEvents(
) → void - Called when widgetEvents changes.
-
didUpdateWidget(
covariant T oldWidget) → void -
Called whenever the widget configuration changes.
inherited
-
dispose(
) → void -
Called when this object is removed from the tree permanently.
override
-
disposeWidgetEvents(
) → void -
initState(
) → void -
Called when this object is inserted into the tree.
inherited
-
initWidgetEvents(
WidgetEventController? controller) → void - Init widget events with external events controller
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reassemble(
) → void -
Called whenever the application is reassembled during debugging, for
example during hot reload.
inherited
-
setState(
VoidCallback fn) → void -
Notify the framework that the internal state of this object has changed.
override
-
toDiagnosticsNode(
{String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode -
Returns a debug representation of the object that is used by debugging
tools and by DiagnosticsNode.toStringDeep.
inherited
-
toString(
{DiagnosticLevel minLevel = DiagnosticLevel.info}) → String -
A string representation of this object.
inherited
-
toStringShort(
) → String -
A brief description of this object, usually just the runtimeType and the
hashCode.
inherited
-
updateWidgetEvents(
WidgetEventController? newController) → void - Update widget events with external events controller
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited