ArnaDropdownButton<T> class

An Arna-styled button for selecting from a list of items.

A dropdown button lets the user select from a number of items. The button shows the currently selected item as well as an arrow that opens a menu for selecting another item.

The type T is the type of the value that each dropdown item represents. All the entries in a given menu must represent values with consistent types. Typically, an enum is used. Each ArnaDropdownMenuItem in items must be specialized with that same type argument.

The onChanged callback should update a state variable that defines the dropdown's value. It should also call State.setState to rebuild the dropdown with the new value.

If the onChanged callback is null or the list of items is null then the dropdown button will be disabled. A disabled button will display the disabledHint text if it is non-null. However, if disabledHint is null and hint is non-null, the hint text will instead be displayed.

See also:

Inheritance

Constructors

ArnaDropdownButton({Key? key, required List<ArnaDropdownMenuItem<T>>? items, T? value, Widget? hint, Widget? disabledHint, required ValueChanged<T?>? onChanged, VoidCallback? onTap, FocusNode? focusNode, bool autofocus = false, Color? accentColor, MouseCursor cursor = MouseCursor.defer, bool? enableFeedback})
Creates a dropdown button.

Properties

accentColor Color?
The color of the button's focused border.
final
autofocus bool
Whether this button should focus itself if nothing else is already focused.
final
cursor MouseCursor
The cursor for a mouse pointer when it enters or is hovering over the button.
final
disabledHint Widget?
A preferred placeholder text that is displayed when the dropdown is disabled.
final
enableFeedback bool?
Whether detected gestures should provide acoustic and/or haptic feedback.
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
hint Widget?
A placeholder widget that is displayed by the dropdown button.
final
items List<ArnaDropdownMenuItem<T>>?
The list of items the user can select.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onChanged ValueChanged<T?>?
Called when the user selects an item.
final
onTap VoidCallback?
Called when the dropdown button is tapped.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
value → T?
The value of the currently selected ArnaDropdownMenuItem.
final

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<ArnaDropdownButton<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}) 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