CupertinoSwitch class
An iOS-style 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.
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 ListTile. The
MergeSemantics is used to turn the entire ListTile into a single item
for accessibility tools.
link
MergeSemantics(
child: ListTile(
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({Key? key, required bool value, required ValueChanged<
bool> ? onChanged, Color? activeColor, Color? trackColor, Color? thumbColor, bool? applyTheme, Color? focusColor, Color? onLabelColor, Color? offLabelColor, 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.
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
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- offLabelColor → Color?
-
The color to use for the accessibility label when the switch is off.
final
-
onChanged
→ ValueChanged<
bool> ? -
Called when the user toggles with switch on or off.
final
-
onFocusChange
→ ValueChanged<
bool> ? -
Handler called when the focus changes.
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 of the switch.
final
- trackColor → Color?
-
The color to use for the track when the switch is off.
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}) → 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