AppSearchableMultiSelect<T> class final

Dropdown de seleção múltipla com busca: chips no trigger + filtro no overlay; selecionar não fecha. Reusa o core de dropdown.

Com allOptionLabel preenchido, a lista ganha uma opção "Todos" no topo e seleção vazia == "Todos": o trigger passa a exibir esse texto e a linha "Todos" recebe o destaque de selecionado.

Inheritance

Constructors

AppSearchableMultiSelect({required ValueChanged<List<T>> onChanged, required List<AppDropdownOption<T>> options, String? allOptionLabel, bool enabled = true, String? errorText, bool hasError = false, String? helperText, String? hintText, String? label, Widget? info, String? searchHintText, List<T> selectedValues = const <Never>[], AppStyle? style, AppFieldSize size = AppFieldSize.m, bool multiline = false, Key? key})
Cria um AppSearchableMultiSelect.
const

Properties

allOptionLabel String?
Label da opção "Todos", exibida como primeira linha da lista (só quando a busca está vazia). Se null, a opção não aparece. Com ela, seleção vazia == "Todos": o trigger mostra este texto e a linha "Todos" fica em destaque. Tocar em "Todos" limpa a seleção (onChanged([])); tocar num item individual sai do estado "Todos".
final
enabled bool
Se está habilitado.
final
errorText String?
Texto de erro.
final
hasError bool
Se está em erro.
final
hashCode int
The hash code for this object.
no setterinherited
helperText String?
Texto auxiliar.
final
hintText String?
Placeholder do trigger.
final
info Widget?
Conteúdo livre de um popover de informação ao lado do label.
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
label String?
Label acima do campo.
final
multiline bool
Quando false (default) os chips ficam em 1 linha com scroll horizontal (o campo mantém a altura de size). Quando true, quebram em várias linhas e o campo cresce (com padding vertical).
final
onChanged ValueChanged<List<T>>
Callback quando a lista muda.
final
options List<AppDropdownOption<T>>
Opções disponíveis.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
searchHintText String?
Placeholder do campo de busca.
final
selectedValues List<T>
Valores selecionados.
final
size AppFieldSize
Tamanho do campo (altura fixa + métricas). Default AppFieldSize.m.
final
style AppStyle?
Eixo global AppStyle do trigger. null segue o global do tema.
final

Methods

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