A highly customizable multiple selection widget with search functionality.

Overview

Version Version

A highly customizable multiple selection widget with fuzzy search functionality

MultipleSearchSelection(
    items: countries, // List
    fuzzySearch: FuzzySearch.jaro,
    padding: const EdgeInsets.all(20),
    title: Text(
        'Countries',
        style: kStyleDefault.copyWith(
        fontSize: 22,
        fontWeight: FontWeight.bold,
        ),
    ),
    titlePadding: const EdgeInsets.symmetric(vertical: 10),
    searchItemTextContentPadding:
        const EdgeInsets.symmetric(horizontal: 10),
    maximumShowItemsHeight: 200,
    hintText: 'Type here to search',
    hintTextStyle: kStyleDefault.copyWith(
        fontSize: 13,
        color: Colors.grey[400],
    ),
    selectAllTextStyle: kStyleDefault,
    selectAllBackgroundColor: Colors.white,
    selectAllOnHoverBackgroundColor: Colors.blue[300],
    selectAllOnHoverTextColor: Colors.white,
    selectAllOnHoverFontWeight: FontWeight.bold,
    clearAllTextStyle: kStyleDefault.copyWith(
        color: Colors.red,
    ),
    clearAllOnHoverFontWeight: FontWeight.bold,
    clearAllOnHoverBackgroundColor: Colors.white,
    pickedItemTextStyle: kStyleDefault.copyWith(
        fontSize: 13,
    ),
    pickedItemBackgroundColor: Colors.grey[300]!.withOpacity(0.5),
    pickedItemBorderRadius: 6,
    pickedItemTextColor: Colors.black,
    showedItemTextStyle: kStyleDefault.copyWith(
        fontWeight: FontWeight.w500,
    ),
    showedItemsBackgroundColor: Colors.grey.withOpacity(0.1),
    showShowedItemsScrollbar: false,
    searchItemTextStyle: kStyleDefault,
    noResultsWidget: Padding(
        padding: const EdgeInsets.all(8.0),
        child: Text(
        'No items found',
        style: kStyleDefault.copyWith(
            color: Colors.grey[400],
            fontSize: 13,
            fontWeight: FontWeight.w100,
        ),
        ),
    ),
    onTapShowedItem: () {},
    onPickedChange: (items) {},
    onItemAdded: (item) {
        print('$item added to picked items');
    },
    onItemRemoved: (item) {
        print('$item removed from picked items');
    },
)

Issues / Features

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

Comments
  • Failing to work with async data from API

    Failing to work with async data from API

    Good day.

    Please could you kindly assist. I'm failing to work with data asynchronously fetched from an API for the dropdown. It seems I can only work predefined data.

    Not sure if I'm making a mistake or there's a special way I need to access the data.

    Regards.

    opened by tinashepb 6
  • Initial Value still shown in Show select Items

    Initial Value still shown in Show select Items

    Current Behavior

    A clear and concise description of the behavior.

    Expected behavior/code

    A clear and concise description of what you expected to happen (or code).

    Environment

    • Operating System
    • flutter doctor -v

    Possible Solution

    Only if you have suggestions on a fix for the bug

    Additional context/Screenshots

    Add any other context about the problem here. If applicable, add screenshots to help explain.

    opened by chhily 4
  • Object selection options

    Object selection options

    Describe the feature you'd like

    1. Is it possible to select custom objects other than String in the dropdown? Often choices will have an ID for form processing and a String for display:

    items: MyObj (id: ..., name: ..., toString() => name)

    1. Support for async data fetch for populating items instead of expecting all items available up front. Even better if the data fetch is paginated.
    opened by umangsh 4
  • ShowedItemsVisibility.onType isn't showing any options

    ShowedItemsVisibility.onType isn't showing any options

    When the ShowedItemsVisibility is set to onType, nothing appears when you start typing. Not sure if there's other configuration options I'm supposed to change for it to work.

    Please could you kindly assist.

    opened by tinashepb 2
  • Error: No named parameter with the name 'thumbVisibility'.

    Error: No named parameter with the name 'thumbVisibility'.

    Current Behavior

    cannot run debug or build on android

    Expected behavior/code

    i tried to implement MultipleSearchSelection , and the dart formatter looks like having no issue this is the code

    Container(
        margin: EdgeInsets.symmetric(vertical: 10),
        child: MultipleSearchSelection<TeamsData>(
          onTapShowedItem: () => Loggers.warning('onTapShowedItem'),
          items: _teamsData!,
          fieldToCheck: (c) {
            return c.username;
          },
          itemBuilder: (data) {
            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(data.username),
                ),
              ),
            );
          },
          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.username),
              ),
            );
          },
          onPickedChange: (items) {
            print(items);
          },
        ),
      ),
    

    Environment

    • Operating System Windows 11
    • flutter doctor -v result
    [√] Flutter (Channel stable, 2.10.5, on Microsoft Windows [Version 10.0.22000.795], locale en-ID)
        • Flutter version 2.10.5 at C:\Users\galih\Projects\google\flutter
        • Upstream repository https://github.com/flutter/flutter.git
        • Framework revision 5464c5bac7 (4 months ago), 2022-04-18 09:55:37 -0700
        • Engine revision 57d3bac3dd
        • Dart version 2.16.2
        • DevTools version 2.9.2
           https://plugins.jetbrains.com/plugin/6351-dart
        • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    
    [√] VS Code (version 1.69.2)
        • VS Code at C:\Users\galih\AppData\Local\Programs\Microsoft VS Code
        • Flutter extension version 3.44.0
    
    [√] Connected device (4 available)
        • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
        • Windows (desktop)           • windows       • windows-x64    • Microsoft Windows [Version 10.0.22000.795]
        • Chrome (web)                • chrome        • web-javascript • Google Chrome 103.0.5060.134
        • Edge (web)                  • edge          • web-javascript • Microsoft Edge 102.0.1245.39
    
    [√] HTTP Host Availability
        • All required HTTP hosts are available
    
    • No issues found!
    

    Error Log

    > Task :app:compileFlutterBuildDebug
    ../../google/flutter/.pub-cache/hosted/pub.dartlang.org/multiple_search_selection-2.1.0/lib/multiple_search_selection.dart:426:17: Error: No named parameter with the name 'thumbVisibility'.
                    thumbVisibility: widget.showPickedItemScrollbar,
                    ^^^^^^^^^^^^^^^
    ../../google/flutter/packages/flutter/lib/src/widgets/scrollbar.dart:865:9: Context: Found this candidate, but the arguments don't match.
      const RawScrollbar({
            ^^^^^^^^^^^^
    ../../google/flutter/.pub-cache/hosted/pub.dartlang.org/multiple_search_selection-2.1.0/lib/multiple_search_selection.dart:638:43: Error: No named parameter with the name 'thumbVisibility'.
                                              thumbVisibility:
                                              ^^^^^^^^^^^^^^^
    ../../google/flutter/packages/flutter/lib/src/widgets/scrollbar.dart:865:9: Context: Found this candidate, but the arguments don't match.
      const RawScrollbar({
            ^^^^^^^^^^^^
    ../../google/flutter/.pub-cache/hosted/pub.dartlang.org/multiple_search_selection-2.1.0/lib/multiple_search_selection.dart:911:17: Error: No named parameter with the name 'thumbVisibility'.
                    thumbVisibility: widget.showShowedItemsScrollbar,
                    ^^^^^^^^^^^^^^^
    ../../google/flutter/packages/flutter/lib/src/widgets/scrollbar.dart:865:9: Context: Found this candidate, but the arguments don't match.
      const RawScrollbar({
            ^^^^^^^^^^^^
    
    
    > Task :app:compileFlutterBuildDebug FAILED                                                                                                                                         
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Script 'C:\Users\galih\Projects\google\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1102
    
    * What went wrong:
    Execution failed for task ':app:compileFlutterBuildDebug'.                                                                                                                          
    > Process 'command 'C:\Users\galih\Projects\google\flutter\bin\flutter.bat'' finished with non-zero exit value 1                                                                    
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
    Use '--warning-mode all' to show the individual deprecation warnings.
    See https://docs.gradle.org/6.7/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD FAILED in 25s
    1 actionable task: 1 executed
    
    opened by galih9 2
  • [ImgBot] Optimize images

    [ImgBot] Optimize images

    Beep boop. Your images are optimized!

    Your image file size has been reduced by 45% 🎉

    Details

    | File | Before | After | Percent reduction | |:--|:--|:--|:--| | /example/web/icons/Icon-maskable-512.png | 20.51kb | 10.54kb | 48.61% | | /example/web/icons/Icon-maskable-192.png | 5.46kb | 3.66kb | 33.05% | | | | | | | Total : | 25.97kb | 14.19kb | 45.34% |


    📝 docs | :octocat: repo | 🙋🏾 issues | 🏪 marketplace

    ~Imgbot - Part of Optimole family

    opened by imgbot[bot] 0
A Highly customizable Phone input Flutter widget that supports country code, validation and contact picker.

A Highly customizable Phone input Flutter widget that supports country code, validation and contact picker.

null 6 Jun 7, 2022
Displays a highly customizable week view (or day view) which is able to display events, to be scrolled, to be zoomed-in & out and a lot more !

Displays a highly customizable week view (or day view) which is able to display events, to be scrolled, to be zoomed-in & out and a lot more !

Hugo Delaunay 196 Dec 2, 2022
SKAlertDialog - A highly customizable, powerful and easy-to-use alert dialog for Flutter.

SKAlertDialog A highly customizable, powerful and easy-to-use alert dialog for Flutter. GIF Screenshots SKAlertDialog Basic Alert Alert with buttons A

Senthil_Kumar 7 May 18, 2022
A highly customizable toggle switch with a loading state.

A highly customizable toggle switch with a loading state.

null 6 Dec 30, 2022
Sliding card is a highly customizable flutter package that will help you create beautiful Cards with a sliding animation effect.

Sliding Card Introduction Sliding card is a highly customizable flutter package that will help you create beautiful Cards with a sliding animation eff

null 21 Nov 4, 2022
Animated, highly customizable, open-source Flutter gauge indicator widgets

Animated, highly customizable, open-source Flutter gauge indicator widgets. They use renderbox under the hood, thus ensuring high performance.

HTD Health 6 Jun 10, 2022
Animated Search Bar package lets you add a beautiful search bar to your Flutter app.

Animated Search Bar Animated Search Bar package lets you add a beautiful search bar to your Flutter app. Installation Add the latest version of packag

Mohammad Saleh 5 Aug 7, 2022
Experimental solution for web-like text selection across widgets

Better Selection Experimental solution for web-like text selection across widgets (text, images, et cetera). Better selection is dependent on, and is

Wilson Wilson 59 Oct 12, 2022
📸 Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget.

?? Easy to use yet very customizable zoomable image widget for Flutter, Photo View provides a gesture sensitive zoomable widget. Photo View is largely used to show interacive images and other stuff such as SVG.

Blue Fire 1.7k Jan 7, 2023
A widget to provides horizontal or vertical multiple split view for Flutter.

Multi split view A widget to provides horizontal or vertical multiple split view for Flutter. Horizontal or vertical Configurable weight or size for e

Carlos Eduardo Leite de Andrade 63 Dec 28, 2022
Customizable Flutter widget which syncronize ScrollView with PageView as tabs

scrollable_list_tab_scroller Customizable Flutter widget which syncronize ScrollView with PageView as tabs. Create a custom page view as tabs which sy

Railson Ferreira de Souza 4 Dec 21, 2022
Flutter reaction button plugin it is fully customizable widget such as Facebook reaction button

Flutter Reaction Button Flutter button reaction it is fully customizable widget such as Facebook reaction button. Preview Demo Usage Include 'flutter_

Abdelouahed Medjoudja 174 Dec 19, 2022
Flutter widget form select a date in horizontal timeline with customizable styles.

Flutter widget form select a date in horizontal timeline with customizable styles. Getting Started You can use this package when you need to add a dat

Jose Manuel Márquez 158 Dec 2, 2022
A Flutter package which provides helper widgets for selecting single or multiple account/user from the given list.

account_selector A Flutter package which provides helper widgets for selecting single or multiple account/user from a list Supported Dart Versions Dar

Harpreet Singh 49 Oct 7, 2021
A multi select form field using alert dialog to select multiple items with checkboxes and showing as chips.

A multi select form field using alert dialog to select multiple items with checkboxes and showing as chips.

Carlos Eugenio Torres 73 Sep 7, 2022
Powerful Complete and Beautiful Search Component for Flutter

A highly customizable search component to accelerate your development. Overview There are many search or search components for Flutter, however this o

Tiagosito 31 Jul 27, 2022
Unofficial search provider for Medium for dart/flutter apps.

medium_search Unofficial search provider for Medium that can be used in dart or flutter apps. This library provides you an easy way to get search resu

Clone Conflict 1 Jan 10, 2022
RFlutter Alert is super customizable and easy-to-use alert/popup dialogs for Flutter.

RFlutter Alert is super customizable and easy-to-use alert/popup dialogs for Flutter. You may create reusable alert styles or add buttons as much as you want with ease.

Ratel 362 Jan 1, 2023
Customizable Material and Cupertino buttons with progress indicators and more

future_button Customizable Material and Cupertino buttons with progress indicators and more.

Erzhan 33 Oct 13, 2022