DraftModeUIDropDown<ItemType> class

Platform-aware disclosure that surfaces a selection picker.

DraftModeUIDropDown is the public facade for the drop-down experience. It keeps the consumer-facing API in one place while delegating the inline field rendering, route selection, and picker layout to dedicated implementation files.

Displays the current selection inline and presents the shared picker UI when users change the value. iOS uses a pushed DraftModeUIDropDownScreen, while Android uses a bottom-sheet list so shorter pickers can stay closer to platform settings patterns. Headers, separators, refresh controls, and custom padding propagate to the picker so drop-downs stay visually aligned with standalone lists.

Inheritance

Constructors

DraftModeUIDropDown({Key? key, bool isPending = false, required List<ItemType> items, required Widget itemBuilder(ItemType item, bool isSelected), required String pageTitle, ItemType? selectedItem, Object? selectedKey, Object? itemKeyOf(ItemType item)?, ValueChanged<ItemType?>? onChanged, Widget? emptyPlaceholder, Widget? header, Widget? separator, Future<void> onRefresh()?, EdgeInsetsGeometry? padding, bool readOnly = false, DraftModeUIDropDownFieldBuilder? fieldBuilder})
const

Properties

emptyPlaceholder Widget?
Widget shown when items is empty or selectedItem is null.
final
fieldBuilder DraftModeUIDropDownFieldBuilder?
Optional custom renderer for the inline disclosure field.
final
hashCode int
The hash code for this object.
no setterinherited
Optional leading content rendered above the first row in the picker.
final
isPending bool
Whether a spinner should be shown in place of the inline content.
final
itemBuilder Widget Function(ItemType item, bool isSelected)
Builds the widget for a single item.
final
itemKeyOf Object? Function(ItemType item)?
Maps an item to a stable logical key used for picker selection.
final
items List<ItemType>
Available options presented in the picker page.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
onChanged ValueChanged<ItemType?>?
Called with the new selection (or null when dismissed without picking).
final
onRefresh Future<void> Function()?
When non-null, the picker list supports pull-to-refresh.
final
padding EdgeInsetsGeometry?
Padding applied around the picker list view.
final
pageTitle String
Title shown by the picker surface presented on tap.
final
readOnly bool
When true, the disclosure chevron is hidden and taps are ignored.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedItem → ItemType?
The currently selected item, displayed inline.
final
selectedKey Object?
Stable selection key used together with itemKeyOf.
final
separator Widget?
Custom divider between rows in the picker list.
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this widget.
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
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