Radio<T> class
A Material Design radio button.
This widget builds a RawRadio with a material UI.
Used to select between a number of mutually exclusive values. When one radio
button in a group is selected, the other radio buttons in the group cease to
be selected. The values are of type T
, the type parameter of the Radio
class. Enums are commonly used for this purpose.
This widget typically has a RadioGroup ancestor, which takes in a RadioGroup.groupValue, and the Radio under it with matching value will be selected.
The currently selected character is passed into RadioGroup.groupValue
,
which is maintained by the example's State
. In this case, the first Radio
will start off selected because _character
is initialized to
SingingCharacter.lafayette
.
If the second radio button is pressed, the example's state is updated
with setState
, updating _character
to SingingCharacter.jefferson
.
This causes the buttons to rebuild with the updated groupValue
, and
therefore the selection of the second button.
Requires one of its ancestors to be a Material widget.
To create a local project with this code sample, run:
flutter create --sample=material.Radio.1 mysample
In this example:
To create a local project with this code sample, run:
flutter create --sample=material.Radio.2 mysample
See also:
- RadioListTile, which combines this widget with a ListTile so that you can give the radio button a label.
- Slider, for selecting a value in a range.
- Checkbox and Switch, for toggling a particular value on or off.
- material.io/design/components/selection-controls.html#radio-buttons
- Inheritance
Constructors
-
Radio.new({Key? key, required T value, @Deprecated('Use a RadioGroup ancestor to manage group value instead. ' 'This feature was deprecated after v3.32.0-0.0.pre.') T? groupValue, @Deprecated('Use RadioGroup to handle value change instead. ' 'This feature was deprecated after v3.32.0-0.0.pre.') ValueChanged<
T?> ? onChanged, MouseCursor? mouseCursor, bool toggleable = false, Color? activeColor, MaterialStateProperty<Color?> ? fillColor, Color? focusColor, Color? hoverColor, MaterialStateProperty<Color?> ? overlayColor, double? splashRadius, MaterialTapTargetSize? materialTapTargetSize, VisualDensity? visualDensity, FocusNode? focusNode, bool autofocus = false, bool? enabled, RadioGroupRegistry<T> ? groupRegistry, WidgetStateProperty<Color?> ? backgroundColor, BorderSide? side, WidgetStateProperty<double?> ? innerRadius}) -
Creates a Material Design radio button.
const
-
Radio.adaptive({Key? key, required T value, @Deprecated('Use a RadioGroup ancestor to manage group value instead. ' 'This feature was deprecated after v3.32.0-0.0.pre.') T? groupValue, @Deprecated('Use RadioGroup to handle value change instead. ' 'This feature was deprecated after v3.32.0-0.0.pre.') ValueChanged<
T?> ? onChanged, MouseCursor? mouseCursor, bool toggleable = false, Color? activeColor, MaterialStateProperty<Color?> ? fillColor, Color? focusColor, Color? hoverColor, MaterialStateProperty<Color?> ? overlayColor, double? splashRadius, MaterialTapTargetSize? materialTapTargetSize, VisualDensity? visualDensity, FocusNode? focusNode, bool autofocus = false, bool useCupertinoCheckmarkStyle = false, bool? enabled, RadioGroupRegistry<T> ? groupRegistry, WidgetStateProperty<Color?> ? backgroundColor, BorderSide? side, WidgetStateProperty<double?> ? innerRadius}) -
Creates an adaptive Radio 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 radio button is selected.
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
-
backgroundColor
→ WidgetStateProperty<
Color?> ? -
The color of the background of the radio button, in all WidgetStates.
final
- enabled → bool?
-
Whether this widget is interactive.
final
-
fillColor
→ MaterialStateProperty<
Color?> ? -
The color that fills the radio button, in all WidgetStates.
final
- focusColor → Color?
-
The color for the radio'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
-
groupRegistry
→ RadioGroupRegistry<
T> ? -
The registry this radio registers to.
final
- groupValue → T?
-
The currently selected value for a group of radio buttons.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hoverColor → Color?
-
The color for the radio's Material when a pointer is hovering over it.
final
-
innerRadius
→ WidgetStateProperty<
double?> ? -
The radius of the inner circle of the radio button, in all WidgetStates.
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- 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
-
onChanged
→ ValueChanged<
T?> ? -
Called when the user selects this radio button.
final
-
overlayColor
→ MaterialStateProperty<
Color?> ? -
The color for the radio's Material.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- side → BorderSide?
-
The side for the circular border of the radio button, in all
WidgetStates.
final
- splashRadius → double?
-
The splash radius of the circular Material ink response.
final
- toggleable → bool
-
Set to true if this radio button is allowed to be returned to an
indeterminate state by selecting it again when selected.
final
- useCupertinoCheckmarkStyle → bool
-
Controls whether the checkmark style is used in an iOS-style radio.
final
- value → T
-
The value represented by this radio button.
final
- visualDensity → VisualDensity?
-
Defines how compact the radio's layout will be.
final
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< Radio< T> > -
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.
inherited
-
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