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:

Inheritance

Constructors

CupertinoSwitch({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