Switch class Null safety

A material design switch.

Used to toggle the on/off state of a single setting.

The switch itself does not maintain any state. Instead, when the state of the switch changes, the widget calls the onChanged callback. Most widgets that use a switch will listen for the onChanged callback and rebuild the switch with a new value to update the visual appearance of the switch.

If the onChanged callback is null, then the switch will be disabled (it will not respond to input). A disabled switch's thumb and track are rendered in shades of grey by default. The default appearance of a disabled switch can be overridden with inactiveThumbColor and inactiveTrackColor.

Requires one of its ancestors to be a Material widget.

See also:

Inheritance

Constructors

Switch({Key? key, required bool value, required ValueChanged<bool>? onChanged, Color? activeColor, Color? activeTrackColor, Color? inactiveThumbColor, Color? inactiveTrackColor, ImageProvider<Object>? activeThumbImage, ImageErrorListener? onActiveThumbImageError, ImageProvider<Object>? inactiveThumbImage, ImageErrorListener? onInactiveThumbImageError, MaterialStateProperty<Color?>? thumbColor, MaterialStateProperty<Color?>? trackColor, MaterialTapTargetSize? materialTapTargetSize, DragStartBehavior dragStartBehavior: DragStartBehavior.start, MouseCursor? mouseCursor, Color? focusColor, Color? hoverColor, MaterialStateProperty<Color?>? overlayColor, double? splashRadius, FocusNode? focusNode, bool autofocus: false})
Creates a material design switch. [...]
const
Switch.adaptive({Key? key, required bool value, required ValueChanged<bool>? onChanged, Color? activeColor, Color? activeTrackColor, Color? inactiveThumbColor, Color? inactiveTrackColor, ImageProvider<Object>? activeThumbImage, ImageErrorListener? onActiveThumbImageError, ImageProvider<Object>? inactiveThumbImage, ImageErrorListener? onInactiveThumbImageError, MaterialTapTargetSize? materialTapTargetSize, MaterialStateProperty<Color?>? thumbColor, MaterialStateProperty<Color?>? trackColor, DragStartBehavior dragStartBehavior: DragStartBehavior.start, MouseCursor? mouseCursor, Color? focusColor, Color? hoverColor, MaterialStateProperty<Color?>? overlayColor, double? splashRadius, FocusNode? focusNode, bool autofocus: false})
Creates an adaptive Switch based on whether the target platform is iOS or macOS, following Material design's Cross-platform guidelines. [...]
const

Properties

activeColor Color?
The color to use when this switch is on. [...]
final
activeThumbImage ImageProvider<Object>?
An image to use on the thumb of this switch when the switch is on. [...]
final
activeTrackColor Color?
The color to use on the track when this switch is on. [...]
final
autofocus bool
True if this widget will be selected as the initial focus when no other node in its scope is currently focused. [...]
final
dragStartBehavior DragStartBehavior
Determines the way that drag start behavior is handled. [...]
final
focusColor Color?
The color for the button's Material when it has the input focus. [...]
final
focusNode FocusNode?
An optional focus node to use as the focus node for this widget. [...]
final
hashCode int
The hash code for this object. [...]
@nonVirtual, read-only, inherited
hoverColor Color?
The color for the button's Material when a pointer is hovering over it. [...]
final
inactiveThumbColor Color?
The color to use on the thumb when this switch is off. [...]
final
inactiveThumbImage ImageProvider<Object>?
An image to use on the thumb of this switch when the switch is off. [...]
final
inactiveTrackColor Color?
The color to use on the track when this switch is off. [...]
final
key Key?
Controls how one widget replaces another widget in the tree. [...]
final, inherited
materialTapTargetSize MaterialTapTargetSize?
Configures the minimum size of the tap target. [...]
final
mouseCursor MouseCursor?
The cursor for a mouse pointer when it enters or is hovering over the widget. [...]
final
onActiveThumbImageError ImageErrorListener?
An optional error callback for errors emitted when loading activeThumbImage.
final
onChanged ValueChanged<bool>?
Called when the user toggles the switch on or off. [...]
final
onInactiveThumbImageError ImageErrorListener?
An optional error callback for errors emitted when loading inactiveThumbImage.
final
overlayColor MaterialStateProperty<Color?>?
The color for the switch's Material. [...]
final
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
splashRadius double?
The splash radius of the circular Material ink response. [...]
final
thumbColor MaterialStateProperty<Color?>?
The color of this Switch's thumb. [...]
final
trackColor MaterialStateProperty<Color?>?
The color of this Switch's track. [...]
final
value bool
Whether this switch is on or off. [...]
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree. [...]
inherited
createState() → _SwitchState
Creates the mutable state for this widget at a given location in the tree. [...]
override
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children. [...]
@protected, inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node. [...]
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
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
toStringDeep({String prefixLineOne: '', String? prefixOtherLines, DiagnosticLevel minLevel: DiagnosticLevel.debug}) String
Returns a string representation of this node and its descendants. [...]
inherited
toStringShallow({String joiner: ', ', DiagnosticLevel minLevel: DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object. [...]
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator. [...]
@nonVirtual, inherited