DefaultDropdown class
A customizable dropdown form field widget with app theme styling.
Provides a full-width dropdown selector with white background, rounded borders, optional prefix icon, and support for enabled/disabled states. The dropdown can be controlled externally via selectedValue and triggers callbacks on changes.
Features:
- Full-width responsive design
- Optional prefix icon (list icon)
- Customizable hint text
- Enabled/disabled state support
- External value control
- White background with border
- Rounded corners from app constants
Example:
DefaultDropdown(
items: ['Option 1', 'Option 2', 'Option 3'],
hintText: 'Select an option',
selectedValue: currentSelection,
onChanged: (value) {
setState(() {
currentSelection = value;
});
},
enabled: true,
isShowPrefixIcon: true,
)
- Inheritance
-
- Object
- DiagnosticableTree
- Widget
- StatefulWidget
- DefaultDropdown
- Available extensions
Constructors
-
DefaultDropdown({Key? key, required List<
String> items, dynamic onChanged(String?)?, String? hintText, FocusNode? focusValue, TextEditingController? mainController, bool enabled = true, bool isShowPrefixIcon = true, String imageAssetPath = "", double leftPadding = 20, double rightPadding = 20, dynamic onSubmitted(String?)?, String? selectedValue}) -
Creates a customizable dropdown widget.
const
Properties
- enabled → bool
-
Whether the dropdown is enabled for interaction
final
- focusValue → FocusNode?
-
FocusNode for managing dropdown focus
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- hintText → String?
-
Hint text displayed when no value is selected
final
- imageAssetPath → String
-
Image asset path for custom icon (currently unused)
final
- isShowPrefixIcon → bool
-
Whether to show the prefix icon (list icon)
final
-
items
→ List<
String> -
List of dropdown items to display
final
- key → Key?
-
Controls how one widget replaces another widget in the tree.
finalinherited
- leftPadding → double
-
Left padding in pixels
final
- mainController → TextEditingController?
-
TextEditingController for compatibility (not actively used)
final
- marginZero → Widget
-
Available on Widget, provided by the WidgetMarginX extension
no setter - onChanged → dynamic Function(String?)?
-
Callback triggered when dropdown value changes
final
- onSubmitted → dynamic Function(String?)?
-
Callback for submission events
final
- paddingZero → Widget
-
Available on Widget, provided by the WidgetPaddingX extension
no setter - rightPadding → double
-
Right padding in pixels
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- selectedValue → String?
-
Initially selected value or externally controlled current value
final
- sliverBox → Widget
-
Available on Widget, provided by the WidgetSliverBoxX extension
no setter
Methods
-
createElement(
) → StatefulElement -
Creates a StatefulElement to manage this widget's location in the tree.
inherited
-
createState(
) → State< DefaultDropdown> -
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
-
marginAll(
double margin) → Widget -
Available on Widget, provided by the WidgetMarginX extension
-
marginOnly(
{double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget -
Available on Widget, provided by the WidgetMarginX extension
-
marginSymmetric(
{double horizontal = 0.0, double vertical = 0.0}) → Widget -
Available on Widget, provided by the WidgetMarginX extension
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
paddingAll(
double padding) → Widget -
Available on Widget, provided by the WidgetPaddingX extension
-
paddingOnly(
{double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget -
Available on Widget, provided by the WidgetPaddingX extension
-
paddingSymmetric(
{double horizontal = 0.0, double vertical = 0.0}) → Widget -
Available on Widget, provided by the WidgetPaddingX extension
-
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