AppCustomDropdown<T> class

A fully custom dropdown component with overlay positioning.

Supports both single and multi-select modes with proper overlay alignment. Now includes searchability, validation, and animations.

Inheritance

Constructors

AppCustomDropdown({Key? key, required List<AppDropdownItem<T>> items, T? value, List<T>? values, ValueChanged<T?>? onChanged, ValueChanged<List<T>>? onMultiChanged, String? labelText, String? hintText, Widget? prefixIcon, AppDropdownMode mode = AppDropdownMode.single, double maxHeight = 300, bool searchable = false, bool enabled = true, double? borderRadius, Color? borderColor, double? borderWidth, Color? focusedBorderColor, Color? backgroundColor, TextStyle? textStyle, TextStyle? hintStyle, Color? iconColor, EdgeInsetsGeometry? padding, EdgeInsetsGeometry? margin, Color? overlayColor, double? overlayBorderRadius, Color? overlayBorderColor, double? overlayElevation, TextStyle? itemTextStyle, TextStyle? selectedItemTextStyle, EdgeInsetsGeometry? itemPadding, FormFieldValidator? validator, FormFieldSetter? onSaved, AutovalidateMode? autovalidateMode})
Creates a custom dropdown.

Properties

autovalidateMode AutovalidateMode
Used to enable/disable this form field auto validation and update its error text.
finalinherited
backgroundColor Color?
Optional background color.
final
borderColor Color?
Optional border color.
final
borderRadius double?
Optional border radius.
final
borderWidth double?
Optional border width.
final
builder FormFieldBuilder
Function that returns the widget representing this form field.
finalinherited
enabled bool
Whether the form is able to receive user input.
finalinherited
errorBuilder FormFieldErrorBuilder?
Function that returns the widget representing the error to display.
finalinherited
focusedBorderColor Color?
Optional focused border color.
final
forceErrorText String?
An optional property that forces the FormFieldState into an error state by directly setting the FormFieldState.errorText property without running the validator function.
finalinherited
hashCode int
The hash code for this object.
no setterinherited
hintStyle TextStyle?
Optional hint style.
final
hintText String?
Hint text when nothing is selected.
final
iconColor Color?
Optional icon color.
final
initialValue → dynamic
An optional value to initialize the form field to, or null otherwise.
finalinherited
itemPadding EdgeInsetsGeometry?
Optional padding for items.
final
items List<AppDropdownItem<T>>
List of items to display.
final
itemTextStyle TextStyle?
Optional text style for items.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
labelText String?
Label text above the dropdown.
final
margin EdgeInsetsGeometry?
Optional margin.
final
maxHeight double
Maximum height of the dropdown overlay.
final
mode AppDropdownMode
Dropdown mode (single or multiple).
final
onReset VoidCallback?
An optional method to call when the form field is reset via FormFieldState.reset.
finalinherited
onSaved FormFieldSetter?
An optional method to call with the final value when the form is saved via FormState.save.
finalinherited
overlayBorderColor Color?
Optional overlay border color.
final
overlayBorderRadius double?
Optional overlay border radius.
final
overlayColor Color?
Optional overlay background color.
final
overlayElevation double?
Optional overlay elevation.
final
padding EdgeInsetsGeometry?
Optional padding.
final
prefixIcon Widget?
Prefix icon.
final
restorationId String?
Restoration ID to save and restore the state of the form field.
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
searchable bool
Whether the dropdown is searchable.
final
selectedItemTextStyle TextStyle?
Optional text style for selected items.
final
textStyle TextStyle?
Optional text style.
final
validator FormFieldValidator?
An optional method that validates an input. Returns an error string to display if the input is invalid, or null otherwise.
finalinherited

Methods

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