searchable_dropdown_form_field 0.2.0 copy "searchable_dropdown_form_field: ^0.2.0" to clipboard
searchable_dropdown_form_field: ^0.2.0 copied to clipboard

A customizable, searchable Flutter dropdown with form validation and generic value support.

0.2.0 - 2026-08-23 #

Added #

  • Added CustomSearchableDropdown.async() as the concise constructor for single-request async search and infinite pagination. Both constructors share the same rendering path and customization API.
  • Optional infinite pagination through asyncPageLoader; pages load near the end of the popup and an empty page ends pagination.
  • Separate first-page and next-page loading states with retry support.
  • Custom asynchronous error UI through asyncErrorBuilder and a reusable loadingWidget.
  • Popup list padding, separators, scroll physics, external scroll controller, width, and pagination trigger-distance options.
  • Arrow-key navigation, Enter selection, and Escape dismissal.
  • Screen-reader semantics for the field, search input, options, selection, and asynchronous errors.
  • semanticLabel and searchSemanticLabel overrides.
  • Keyboard-aware bottom sheets that resize and animate above system insets.
  • Public API documentation for the new types and behavior.
  • Regression tests for pagination, retry, list customization, keyboard input, and bottom-sheet keyboard insets.
  • Updated runnable example with regular and infinitely paginated dropdowns.

Changed #

  • Async usage now has the clearer CustomSearchableDropdown.async() named constructor.
  • The async constructor requires exactly one of asyncItemsLoader or asyncPageLoader, preventing ambiguous configurations.
  • Regular and async constructors share the same form-field and popup rendering implementation, ensuring identical customization and validation behavior.

Fixed #

  • Async selections retain and display their item labels when the local items list is empty.
  • Stale async and paginated responses no longer replace newer search results.
  • Short paginated results continue loading until the list becomes scrollable or the loader returns an empty page.
  • Bottom-sheet content stays visible when the software keyboard opens.

Compatibility #

  • Existing local items and single-request asyncItemsLoader usage remains unchanged; all new behavior is opt-in.

0.1.1 - 2026-08-20 #

Fixed #

  • Pointed the README's complete-example link to the pub.dev Example tab instead of a dartdoc URL, because executable example/lib/main.dart files do not receive standalone dartdoc pages.

0.1.0 - 2026-08-20 #

Initial release.

Added #

  • Generic DropdownItem<T> values and controlled selection.
  • Local, case-insensitive label search.
  • Custom local matching through searchMatcher.
  • Debounced asynchronous item loading with loading, error, retry, empty-state, and stale-response handling.
  • Material dialog and modal bottom-sheet popup modes.
  • Standard FormField<T> validation, saving, and auto-validation.
  • Custom value comparison for model objects through valueEquals.
  • Optional clear button, clear callback, and selected-item checkmark.
  • Independent InputDecoration support for the closed field and search input.
  • Text, title, icon, padding, shape, color, cursor, and keyboard customization.
  • Custom field, popup-item, dialog-title, and empty-result builders.
  • Disabled state and barrier-dismissal control.
  • Async selected-item caching so its label remains visible after selection.
  • Runnable Android example for local and asynchronous search.
  • Widget tests covering search, selection, validation, disabled state, custom matching, clearing, model equality, bottom sheets, and async loading.
3
likes
160
points
205
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A customizable, searchable Flutter dropdown with form validation and generic value support.

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on searchable_dropdown_form_field