CupertinoSwitch class
An iOS-style switch.
Used to toggle the on/off state of a single setting.
The switch itself does not maintain its toggle state. Instead, when the toggle 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.
This example shows a toggleable CupertinoSwitch. When the thumb slides to the other side of the track, the switch is toggled between on/off.
link To create a local project with this code sample, run:
flutter create --sample=cupertino.CupertinoSwitch.1 mysample
This sample shows how to use a CupertinoSwitch in a CupertinoListTile. The MergeSemantics is used to turn the entire CupertinoListTile into a single item for accessibility tools.
link MergeSemantics( child: CupertinoListTile( title: const Text('Lights'), trailing: CupertinoSwitch( value: _lights, onChanged: (bool value) { setState(() { _lights = value; }); }, ), onTap: () { setState(() { _lights = !_lights; }); }, ), ) See also:
- Switch, the Material Design equivalent.
- developer.apple.com/design/human-interface-guidelines/toggles/
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- CupertinoSwitch
Constructors
- CupertinoSwitch.new({Key? key, required bool value, required ValueChanged<
bool> ? onChanged, @Deprecated('Use activeTrackColor instead. ' 'This feature was deprecated after v3.24.0-0.2.pre.') Color? activeColor, @Deprecated('Use inactiveTrackColor instead. ' 'This feature was deprecated after v3.24.0-0.2.pre.') Color? trackColor, Color? activeTrackColor, Color? inactiveTrackColor, Color? thumbColor, Color? inactiveThumbColor, bool? applyTheme, Color? focusColor, Color? onLabelColor, Color? offLabelColor, ImageProvider<Object> ? activeThumbImage, ImageErrorListener? onActiveThumbImageError, ImageProvider<Object> ? inactiveThumbImage, ImageErrorListener? onInactiveThumbImageError, WidgetStateProperty<Color?> ? trackOutlineColor, WidgetStateProperty<double?> ? trackOutlineWidth, WidgetStateProperty<Icon?> ? thumbIcon, WidgetStateProperty<MouseCursor> ? mouseCursor, FocusNode? focusNode, ValueChanged<bool> ? onFocusChange, bool autofocus = false, DragStartBehavior dragStartBehavior = DragStartBehavior.start}) - Creates an iOS-style switch. const
Properties
- activeColor → Color?
- The color to use for the track when the switch is on. no setter
- 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 for the track when the switch is on. final
- applyTheme → bool?
- Whether to apply the ambient CupertinoThemeData. 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 to use for the focus highlight for keyboard interactions. 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. no setterinherited
- inactiveThumbColor → Color?
- The color to use on the thumb when the 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 for the track when the switch is off. final
- key → Key?
- Controls how one widget replaces another widget in the tree. finalinherited
- mouseCursor → WidgetStateProperty<
MouseCursor> ? - The cursor for a mouse pointer when it enters or is hovering over the widget. final
- offLabelColor → Color?
- The color to use for the accessibility label when the switch is off. 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
- onFocusChange → ValueChanged<
bool> ? - Handler called when the focus changes. final
- onInactiveThumbImageError → ImageErrorListener?
- An optional error callback for errors emitted when loading inactiveThumbImage. final
- onLabelColor → Color?
- The color to use for the accessibility label when the switch is on. final
- runtimeType → Type
- A representation of the runtime type of the object. no setterinherited
- thumbColor → Color?
- The color to use for the thumb when the switch is on. final
- thumbIcon → WidgetStateProperty<
Icon?> ? - The icon to use on the thumb of this switch. final
- trackColor → Color?
- The color to use for the track when the switch is off. no setter
- trackOutlineColor → WidgetStateProperty<
Color?> ? - The outline color of this CupertinoSwitch's track. final
- trackOutlineWidth → WidgetStateProperty<
double?> ? - The outline width of this CupertinoSwitch'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(
) → State< CupertinoSwitch> - 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. inherited
- debugFillProperties(
DiagnosticPropertiesBuilder properties) → void - Add additional properties associated with the node. override
- noSuchMethod(
Invocation invocation) → dynamic - Invoked when a nonexistent 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, int wrapWidth = 65}) → 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. inherited