Pakete, Repositories und App-Kategorien suchen

Cover von searchable_listview
Paketdetailsv2.19.5

searchable_listview

Eine neue einfache Möglichkeit, ListView mit einfacher Implementierung zu filtern, wobei die Suchfeld- und leere Widget-Anpassung möglich ist.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
7820
Likes
267
Pub-Punkte
160

Paket installieren

flutter pub add searchable_listview

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein Flutter-Paket, das die Filterung einer ListView mit einer integrierten Suchleiste vereinfacht. Es ermöglicht Entwicklern, schnell durch minimalen Code durchsuchbare Listen zu implementieren und bietet Anpassungsmöglichkeiten für das Suchfeld und das leere Zustands-Widget. Das Paket unterstützt alle wichtigen Plattformen und ist einfach zu bedienen, wodurch es ideal für Apps mit dynamischer Inhaltsfilterung ist. Es lässt sich nahtlos in bestehende Projekte mit einer einfachen API integrieren.

Anwendungsfälle

  • Kontaktlisten filtern
  • Produktkataloge durchsuchen
  • Dynamische Datenabfrage in Dashboards
  • benutzergetriebene Inhaltsoptionierung
  • Echtzeit-Suche in App-Oberflächen

Hauptmerkmale

  • Einfache Implementierung
  • Anpassbarer Suchfeld
  • Konfigurierbarer leerer Zustand
  • Plattformübergreifende Unterstützung
  • Eingebaute Filterlogik
  • Minimales Boilerplate

Geeignet für

  • Entwickler, die eine schnelle Suchintegration suchen
  • Apps mit großen Datensätzen
  • UI-intensiven Anwendungen
  • Prototyping von Suchfunktionen
  • Einsteigerfreundliche Flutter-Projekte

Hinweise

  • Eingeschränkte erweiterte Filteroptionen
  • Keine integrierte Paginierung
  • Erfordert manuelle Behandlung komplexer Datenstrukturen
  • Nicht für sehr große Datensätze ohne zusätzliche Optimierung optimiert
  • Abhängig von externer Zustandsverwaltung für dynamische Aktualisierungen

Original-README

Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.

Searchable ListView

Searchable ListView

An easy-to-use Flutter widget for adding a searchable, sortable, and paginated list UI. Supports synchronous lists, asynchronous data sources, expansion groups, slivers, pull-to-refresh, and many customization options.

Package: searchable_listview

Features

  • Filter lists on edit or submit
  • Support for async data sources and async filtering
  • Expansion-group lists with searchable group contents
  • Optional sort widget and custom sort predicate
  • Pagination and onPaginate callback
  • Pull-to-refresh support
  • Sliver-based scrolling effect
  • Customizable loading / error / empty widgets
  • Customizable search field (decoration, input type, icons, width/height)
  • Auto-complete hints and secondary widgets next to the search field

Installation

Add the package to your pubspec.yaml:

dependencies:
  searchable_listview: ^2.19.5

Then run:

flutter pub get

Quick Start

Basic synchronous list example:

SearchableList<Actor>(
  initialList: actors,
  itemBuilder: (actor) => ActorItem(actor: actor),
  filter: (query) => actors
      .where((a) => a.name.toLowerCase().contains(query.toLowerCase()))
      .toList(),
  emptyWidget: const Center(child: Text('No results')),
  inputDecoration: InputDecoration(labelText: 'Search actor'),
)
Async list example

Use the .async constructor when data comes from a Future and you need to filter the returned list:

SearchableList<Actor>.async(
  asyncListCallback: () async => await fetchActors(),
  asyncListFilter: (query, list) =>
      list.where((a) => a.name.contains(query)).toList(),
  itemBuilder: (actor) => ActorItem(actor: actor),
  loadingWidget: const Center(child: CircularProgressIndicator()),
  errorWidget: const Center(child: Icon(Icons.error)),
)
Expansion groups

For grouped/expansion lists use the .expansion constructor:

SearchableList<Actor>.expansion(
  expansionListData: mapOfActors,
  expansionTitleBuilder: (key) => Text(key.toString()),
  filterExpansionData: (query) => {
    for (final entry in mapOfActors.entries)
      entry.key: (mapOfActors[entry.key] ?? [])
          .where((a) => a.name.contains(query))
          .toList()
  },
  expansionListBuilder: (index, actor) => ActorItem(actor: actor),
)
Sliver list

Use .sliver to embed a searchable list inside sliver scroll views:

SearchableList<Actor>.sliver(
  initialList: actors,
  itemBuilder: (actor) => ActorItem(actor: actor),
  filter: (q) => actors.where((a) => a.name.contains(q)).toList(),
)

Common Parameters

  • initialList — initial synchronous list of items
  • filter — synchronous filter callback (String -> List)
  • asyncListCallback — Future that returns a List
  • asyncListFilter — filter that applies to results from asyncListCallback
  • itemBuilder — builder for list item widgets
  • emptyWidget, loadingWidget, errorWidget — custom widgets for states
  • onPaginate — callback when list reaches the end (for pagination)
  • inputDecoration, textStyle, textInputType — search field customization
  • sortWidget, sortPredicate — optional sorting UI and comparator
  • closeKeyboardWhenScrolling — whether scrolling hides the keyboard

For a complete list of available parameters and detailed API, see the library documentation or the source code in lib/searchable_listview.dart.

Example App

See the example/ folder for a runnable demo with multiple configurations and screenshots.

Example

Contributing

Contributions, issues and feature requests are welcome. Feel free to check the example/ folder for usage examples and open a pull request.

  • Report bugs by opening an issue
  • Suggest features by opening an issue
  • Submit pull requests for fixes and improvements

Repository: https://github.com/koukibadr/Searchable-Listview

License

This project is licensed under the terms in the LICENSE file.

Contributors

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.