Pakete, Repositories und App-Kategorien suchen

Cover von multiple_search_selection
Paketdetailsv3.0.0

multiple_search_selection

Ein hochgradig anpassbarer Mehrfachauswahl-Widget mit Fuzzy-Suchfunktion.

AndroidiOSWebmacOSWindowsLinux
30-Tage-Downloads
1370
Likes
73
Pub-Punkte
150

Paket installieren

flutter pub add multiple_search_selection

Paketübersicht

Aus öffentlichen Paketdaten erstellte Orientierung.

Ein hochgradig anpassbarer Mehrfachauswahl-Widget mit fuzzy-Suchfunktion, der es Benutzern ermöglicht, effizient mehrere Elemente aus einem großen Datensatz auszuwählen. Er unterstützt Echtzeit-Filterung mit intelligenter Übereinstimmung und ist ideal für Formulare, Tags oder Filter, bei denen Benutzer mehrere Optionen auswählen müssen. Der Widget wurde für eine reibungslose Leistung über Plattformen hinweg entwickelt und bietet umfangreiche Anpassungsmöglichkeiten für Design und Verhalten. Mit Flutter erstellt, lässt er sich nahtlos in Apps für Android, iOS, Web, macOS, Windows und Linux integrieren.

Anwendungsfälle

  • Formularingaben mit mehreren Auswahlmöglichkeiten
  • Tag-Auswahl-Schnittstellen
  • Filterungssysteme mit dynamischer Suche
  • Benutzereinstellungsauswahl
  • Dynamische Dropdowns mit Suche
  • Mehrfachauswahl in Admin-Bereichen

Hauptmerkmale

  • Fuzzy-Suche für flexible Übereinstimmung
  • Anpassbare Benutzeroberfläche und Gestaltung
  • Unterstützung für große Datensätze
  • Plattformübergreifende Kompatibilität
  • Echtzeit-Suchfilterung
  • Mehrfachauswahl mit klarem Feedback

Geeignet für

  • Entwickler, die komplexe Formularkomponenten erstellen
  • Apps, die eine effiziente Mehrfachauswahl erfordern
  • Projekte, die eine intelligente Suche in Dropdowns benötigen
  • Teams, die der plattformübergreifenden Konsistenz Priorität einräumen
  • Benutzer, die ein leichtgewichtiges aber leistungsstarkes Auswahlwidget möchten

Hinweise

  • Kann bei sehr großen Datensätzen Anpassungen erfordern
  • Anpassungsoptionen können die Komplexität der ersten Einrichtung erhöhen
  • Die Leistung hängt von der Optimierung der Elementrenderung ab
  • Eingeschränkte integrierte Validierungsfunktionen
  • Nicht geeignet für Einzel-Auswahl-Anwendungsfälle

Original-README

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

Version Version

Show some love by dropping a ⭐ at GitHub
HTML tutorial

A highly customizable multiple selection widget with fuzzy search functionality
// Use this controller to adjust the behaviour of the widget
// 1. getAllItems
// 2. getPickedItems
// 3. searchItems
// 4. clearSearchField
// 5. clearAllPickedItems
// 6. selectAllItems
// 7. minCharsToShowItems
// 8. allowDuplicateSelection
// 9. isSelectable
MultipleSearchController controller = MultipleSearchController();
MultipleSearchSelection<Country>(
  // The TextField that is used to search items.
  //
  // You can use this to customize the search field.
  // The `onChanged` of the `searchField` is used internally to search items,
  // so you can use the `onSearchChanged` callback to get the search query.
  searchField: TextField(
    decoration: InputDecoration(
      hintText: 'Search countries',
      border: OutlineInputBorder(
        borderRadius: BorderRadius.circular(6),
        ),
      ),
    ),
  onSearchChanged: (text) {
    print('Text is $text');
  },
  items: countries, // List<Country>
  fieldToCheck: (c) {
    return c.name; // String
  },
  itemBuilder: (country,index,isPicked) {
    return Padding(
      padding: const EdgeInsets.all(6.0),
      child: Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(6),
          color: Colors.white,
        ),
        child: Padding(
          padding: const EdgeInsets.symmetric(
            vertical: 20.0,
            horizontal: 12,
          ),
          child: Text(country.name),
        ),
      ),
    );
  },
  pickedItemBuilder: (country) {
    return Container(
      decoration: BoxDecoration(
        color: Colors.white,
        border: Border.all(color: Colors.grey[400]!),
      ),
      child: Padding(
        padding: const EdgeInsets.all(8),
        child: Text(country.name),
      ),
    );
  },
  onTapShowedItem: () {},
  onPickedChange: (items) {},
  onItemAdded: (item) {},
  onItemRemoved: (item) {},
  sortShowedItems: true,
  sortPickedItems: true,
  fuzzySearch: FuzzySearch.jaro,
  itemsVisibility: ShowedItemsVisibility.alwaysOn,
  title: Text(
    'Countries',
    style: kStyleDefault.copyWith(
      fontSize: 22,
      fontWeight: FontWeight.bold,
    ),
  ),
  showSelectAllButton: true,
  maximumShowItemsHeight: 200,
)
MultipleSearchSelection<T>.creatable

MultipleSearchSelection<T>.creatable constructor can now create new item when search result does not return any results. It takes a new required parameter, createOptions e.g :

// [T] here is [Country]
createOptions: CreateOptions<Country>(
    // You need to create and return the item you want to add since [T] is not always [String].
    create: (text) {
        return Country(name: text, iso: text);
    },
    // A callback when the item is succesfully created.
    onCreated: (c) => print('Country ${c.name} created'),
    // Create item Widget that appears instead of no results.
    createBuilder: (text) => Align(
        alignment: Alignment.centerLeft,
            child: Padding(
                padding: const EdgeInsets.all(8.0),
                child: Text('Create "$text"'),
            ),
        ),
    // Whether you want to pick the newly created item or just add it to your list. Defaults to false.
    pickCreated: true,
),
Creatable
Showed items visibility

itemsVisibility behaviour for the default & creatable constructors

ShowedItemsVisibility.alwaysOn ShowedItemsVisibility.onType ShowedItemsVisibility.toggle
Always On On type Toggle

Issues / Features

Found a bug or want a new feature? Open an issue in the Github repository of the project.

Kategorien

Abhängigkeiten

Abhängigkeiten 1 Einträge

Quell-Repository

Projekte, die dieses Paket verwenden

Noch keine Daten verfügbar.