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
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