MaterialStateMixin<T extends StatefulWidget> mixin
Null safety
Mixin for State classes that require knowledge of changing MaterialState 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 MaterialStateMixin
to manage the set of active MaterialStates, and the calling of setState
as necessary.
This example shows how to write a StatefulWidget that uses the
MaterialStateMixin class to watch MaterialState values.
class MyWidget extends StatefulWidget {
const MyWidget({super.key, required this.color, required this.child});
final MaterialStateColor color;
final Widget child;
@override
State<MyWidget> createState() => MyWidgetState();
}
class MyWidgetState extends State<MyWidget> with MaterialStateMixin<MyWidget> {
@override
Widget build(BuildContext context) {
return InkWell(
onFocusChange: updateMaterialState(MaterialState.focused),
child: Container(
color: widget.color.resolve(materialStates),
child: widget.child,
),
);
}
}
- Superclass Constraints
- State<
T>
- State<
- Annotations
Properties
-
materialStates
↔ Set<
MaterialState> -
Managed set of active
MaterialState
values; designed to be passed to MaterialStateProperty.resolve methods.protected">@protectedread / write - isDisabled → bool
-
Getter for whether this class considers MaterialState.disabled to be active.
read-only
- isDragged → bool
-
Getter for whether this class considers MaterialState.dragged to be active.
read-only
- isErrored → bool
-
Getter for whether this class considers MaterialState.error to be active.
read-only
- isFocused → bool
-
Getter for whether this class considers MaterialState.focused to be active.
read-only
- isHovered → bool
-
Getter for whether this class considers MaterialState.hovered to be active.
read-only
- isPressed → bool
-
Getter for whether this class considers MaterialState.pressed to be active.
read-only
- isScrolledUnder → bool
-
Getter for whether this class considers MaterialState.scrolledUnder to be active.
read-only
- isSelected → bool
-
Getter for whether this class considers MaterialState.selected to be active.
read-only
- widget → T
-
The current configuration.
read-onlyinherited
- context → BuildContext
-
The location in the tree where this widget builds.
read-onlyinherited
- mounted → bool
-
Whether this State object is currently in a tree.
read-onlyinherited
- hashCode → int
-
The hash code for this object.
read-onlyinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
read-onlyinherited
Methods
-
activate(
) → void - Called when this object is reinserted into the tree after having been removed via deactivate.
-
addMaterialState(
MaterialState state) → void -
Mutator to mark a MaterialState value as active.
protected">@protected
-
build(
BuildContext context) → Widget -
Describes the part of the user interface represented by this widget.
protected">@protectedinherited
-
deactivate(
) → void - Called when this object is removed from the tree.
-
debugFillProperties(
DiagnosticPropertiesBuilder properties) → void -
Add additional properties associated with the node.
override
-
didChangeDependencies(
) → void - Called when a dependency of this State object changes.
-
didUpdateWidget(
covariant T oldWidget) → void - Called whenever the widget configuration changes.
-
dispose(
) → void - Called when this object is removed from the tree permanently.
-
initState(
) → void - Called when this object is inserted into the tree.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed.
inherited
-
reassemble(
) → void - Called whenever the application is reassembled during debugging, for example during hot reload.
-
removeMaterialState(
MaterialState state) → void -
Mutator to mark a MaterialState value as inactive.
protected">@protected
-
setMaterialState(
MaterialState state, bool isSet) → void -
Mutator to mark a MaterialState value as either active or inactive.
protected">@protected
-
setState(
VoidCallback fn) → void -
Notify the framework that the internal state of this object has changed.
protected">@protectedinherited
-
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
-
updateMaterialState(
MaterialState key, {ValueChanged< bool> ? onChanged}) → ValueChanged<bool> -
Callback factory which accepts a MaterialState value and returns a
closure to mutate materialStates and call setState.
protected">@protected
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited