ExtendedDropdownButton<T> class

An extended DropdownButton, which fixes a bug for popup menu's layout when dismissing keyboard, and makes underline more customizable.

Inheritance

Constructors

ExtendedDropdownButton({Key? key, required List<DropdownMenuItem<T>>? items, DropdownButtonBuilder? selectedItemBuilder, T? value, Widget? hint, Widget? disabledHint, required ValueChanged<T?>? onChanged, VoidCallback? onTap, int elevation = 8, TextStyle? style, Widget? underline, Widget? icon, Color? iconDisabledColor, Color? iconEnabledColor, double iconSize = 24.0, bool isDense = false, bool isExpanded = false, double? itemHeight = kMinInteractiveDimension, Color? focusColor, FocusNode? focusNode, bool autofocus = false, Color? dropdownColor, double? menuMaxHeight, bool? enableFeedback, AlignmentGeometry alignment = AlignmentDirectional.centerStart, BorderRadius? borderRadius, bool useRootNavigator = false, bool useSafeArea = false, bool adjustRectToAvoidBottomInset = true, double? bottomViewInsetGetter(BuildContext context)?, Rect? adjustButtonRect(BuildContext context, Rect buttonRect, double bottomViewInset)?, FutureOr<void> onTapBefore()?, PositionArgument? underlinePosition})

Properties

adjustButtonRect → (Rect? Function(BuildContext context, Rect buttonRect, double bottomViewInset)?)
A function to adjust buttonRect by given bottomViewInset, keeps null to use the default adjust strategy, which only modify Rect.top to buttonRect.top + bottomViewInset / 2.
final
adjustRectToAvoidBottomInset bool
A flag to decide whether to adjust button rect for popup menu layout by media query view bottom inset, defaults to true, and using the default adjust strategy or adjustButtonRect.
final
alignment AlignmentGeometry
final
autofocus bool
final
borderRadius BorderRadius?
final
bottomViewInsetGetter → (double? Function(BuildContext context)?)
A function to customize how to get the current bottom view inset, to deal with some contexts that those MediaQueryData.viewInsets are always EdgeInsets.zero even if keyboard shows.
final
disabledHint Widget?
final
final
elevation int
final
enableFeedback bool?
final
focusColor Color?
final
focusNode FocusNode?
final
hashCode int
The hash code for this object.
no setterinherited
hint Widget?
final
icon Widget?
final
iconDisabledColor Color?
final
iconEnabledColor Color?
final
iconSize double
final
isDense bool
final
isExpanded bool
final
itemHeight double?
final
items List<DropdownMenuItem<T>>?
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
final
onChanged ValueChanged<T?>?
final
onTap VoidCallback?
final
onTapBefore → (FutureOr<void> Function()?)
A callback function to be called before dropdown button tapped. Note that the returned future will be awaited, so use Future.microtask if necessary.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
selectedItemBuilder DropdownButtonBuilder?
final
style TextStyle?
final
underline Widget?
final
underlinePosition PositionArgument?
A position argument to overwrite the default underline position, and make the dropdown button ignores isDense. Note that only left, right and bottom will be used.
final
useRootNavigator bool
The flag to decide whether to use root navigator for popup menu route or not.
final
useSafeArea bool
The flag to decide whether to use SafeArea for popup menu route or not.
final
value → T?
final

Methods

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