thumbColor property
The color of this Switch's thumb.
Resolved in the following states:
This example resolves the thumbColor based on the current WidgetState of the Switch, providing a different Color when it is WidgetState.disabled.
Switch(
value: true,
onChanged: (bool value) { },
thumbColor: WidgetStateProperty.resolveWith<Color>((Set<WidgetState> states) {
if (states.contains(WidgetState.disabled)) {
return Colors.orange.withValues(alpha: .48);
}
return Colors.orange;
}),
)
If null, then the value of activeThumbColor is used in the selected state and inactiveThumbColor in the default state. If that is also null, then the value of SwitchThemeData.thumbColor is used. If that is also null, then the following colors are used:
| State | Light theme | Dark theme |
|---|---|---|
| Default | Colors.grey.shade50 |
Colors.grey.shade400 |
| Selected | ColorScheme.secondary | ColorScheme.secondary |
| Disabled | Colors.grey.shade400 |
Colors.grey.shade800 |
Implementation
// TODO(framework): Add unit tests to this code snippet.
// https://github.com/flutter/flutter/issues/188530
///
/// This example resolves the [thumbColor] based on the current
/// [WidgetState] of the [Switch], providing a different [Color] when it is
/// [WidgetState.disabled].
///
/// ```dart
/// Switch(
/// value: true,
/// onChanged: (bool value) { },
/// thumbColor: WidgetStateProperty.resolveWith<Color>((Set<WidgetState> states) {
/// if (states.contains(WidgetState.disabled)) {
/// return Colors.orange.withValues(alpha: .48);
/// }
/// return Colors.orange;
/// }),
/// )
/// ```
///
/// </callout-box>
/// {@endtemplate}
///
/// If null, then the value of [activeThumbColor] is used in the selected
/// state and [inactiveThumbColor] in the default state. If that is also null,
/// then the value of [SwitchThemeData.thumbColor] is used. If that is also
/// null, then the following colors are used:
///
/// | State | Light theme | Dark theme |
/// |----------|-----------------------------------|-----------------------------------|
/// | Default | `Colors.grey.shade50` | `Colors.grey.shade400` |
/// | Selected | [ColorScheme.secondary] | [ColorScheme.secondary] |
/// | Disabled | `Colors.grey.shade400` | `Colors.grey.shade800` |
final WidgetStateProperty<Color?>? thumbColor;