{"id":13551420,"url":"https://github.com/Mindinventory/drop_down_list","last_synced_at":"2025-04-03T01:32:48.714Z","repository":{"id":37390051,"uuid":"438980837","full_name":"Mindinventory/drop_down_list","owner":"Mindinventory","description":"Highly versatile Widget to search through a single or multiple choices from bottom sheet list in a dialog box or a menu.","archived":false,"fork":false,"pushed_at":"2024-07-23T13:10:33.000Z","size":16049,"stargazers_count":75,"open_issues_count":4,"forks_count":32,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-01T12:24:44.165Z","etag":null,"topics":["flutter-drop-down","flutter-drop-down-ui"],"latest_commit_sha":null,"homepage":"https://www.mindinventory.com/flutter-app-development.php","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mindinventory.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-16T12:26:19.000Z","updated_at":"2024-07-30T07:17:31.000Z","dependencies_parsed_at":"2024-01-16T19:08:44.843Z","dependency_job_id":"bb685169-a575-436e-aec6-cdecd7b031f3","html_url":"https://github.com/Mindinventory/drop_down_list","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fdrop_down_list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fdrop_down_list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fdrop_down_list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mindinventory%2Fdrop_down_list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mindinventory","download_url":"https://codeload.github.com/Mindinventory/drop_down_list/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222905910,"owners_count":17055819,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter-drop-down","flutter-drop-down-ui"],"created_at":"2024-08-01T12:01:47.981Z","updated_at":"2025-04-03T01:32:48.704Z","avatar_url":"https://github.com/Mindinventory.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# drop_down_list\n\n\u003ca href=\"https://flutter.dev/\"\u003e\u003cimg src=\"https://img.shields.io/badge/flutter-website-deepskyblue.svg\" alt=\"Flutter Website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://dart.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/dart-website-deepskyblue.svg\" alt=\"Dart Website\"\u003e\u003c/a\u003e\n\u003ca href=\"https://developer.android.com\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Android-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"https://developer.apple.com/ios/\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-iOS-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Web-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Mac-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Linux-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/platform-Windows-deepskyblue\"\u003e\n\u003c/a\u003e\n\u003ca href=\"\"\u003e\u003cimg src=\"https://app.codacy.com/project/badge/Grade/dc683c9cc61b499fa7cdbf54e4d9ff35\"/\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Mindinventory/drop_down_list/blob/main/LICENSE\" style=\"pointer-events: stroke;\" target=\"_blank\"\u003e\n\u003cimg src=\"https://img.shields.io/github/license/Mindinventory/drop_down_list\"\u003e\u003c/a\u003e\n\u003ca href=\"https://pub.dev/packages/drop_down_list\"\u003e\u003cimg src=\"https://img.shields.io/pub/v/drop_down_list?color=as\u0026label=drop_down_list\u0026logo=as1\u0026logoColor=blue\u0026style=social\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/Mindinventory/drop_down_list\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Mindinventory/drop_down_list?style=social\" alt=\"MIT License\"\u003e\u003c/a\u003e\n\nA customizable dropdown widget supporting single/multiple selection, integrated search in a bottom\nsheet, generic support for flexible, type-safe handling of custom data.\n\n# Preview\n\n### Dropdown with a Multiple Selection\n\n![drop_down_with_multiple_selection](https://github.com/Mindinventory/drop_down_list/raw/main/screenshots/drop_down_with_multiple_selection.gif)\n\n### Dropdown with a Single Selection\n\n![drop_down_with_single_selection](https://github.com/Mindinventory/drop_down_list/raw/main/screenshots/drop_down_with_single_selection.gif)\n\n## Basic Usage\n\nImport it to your project file\n\n```dart\nimport 'package:drop_down_list/drop_down_list.dart';\n```\n\nAnd add it in its most basic form like it:\n\n```dart\nDropDownState\u003cString\u003e(\n  dropDown: DropDown\u003cString\u003e(\n    data: \u003cSelectedListItem\u003cString\u003e\u003e[\n      SelectedListItem\u003cString\u003e(data: 'Tokyo'),\n      SelectedListItem\u003cString\u003e(data: 'New York'),\n      SelectedListItem\u003cString\u003e(data: 'London'),\n    ],\n    onSelected: (selectedItems) {\n      List\u003cString\u003e list = [];\n      for (var item in selectedItems) {\n        list.add(item.data);\n      }\n      ScaffoldMessenger.of(context).showSnackBar(\n        SnackBar(\n          content: Text(\n            list.toString(),\n          ),\n        ),\n      );\n    },\n  ),\n).showModal(context);\n```\n\n## Required parameters of DropDown\n\n| Parameter                        | Description                                                    |\n|----------------------------------|----------------------------------------------------------------|\n| `List\u003cSelectedListItem\u003cT\u003e\u003e data` | The list of generic data items to be displayed in the dropdown |\n\n## Optional parameters of DropDown\n\n| Parameter                                  | Description                                                                                                                                        |\n|--------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------|\n| `ItemSelectionCallBack\u003cT\u003e? onSelected`     | A callback function triggered when items are selected from the list                                                                                |\n| `ListItemBuilder\u003cT\u003e? listItemBuilder`      | A function that takes an `[index]` and `[dataItem]` as a parameter and returns a custom widget to display for the list item at that index          |\n| `int? maxSelectedItems`                    | The maximum number of items that can be selected when `[enableMultipleSelection]` is true                                                          |\n| `VoidCallback? onMaxSelectionReached`      | A callback function triggered when the maximum selection limit is reached                                                                          |\n| `EdgeInsets? listViewPadding`              | The padding applied to the `ListView` that contains the dropdown items                                                                             |\n| `Widget? listViewSeparatorWidget`          | The widget used as a separator between items in the dropdown list                                                                                  |\n| `EdgeInsets? listTileContentPadding`       | The padding applied to the content of each `ListTile` in the dropdown list                                                                         |\n| `BottomSheetListener? bottomSheetListener` | A listener that monitors events bubbling up from the BottomSheet                                                                                   |\n| `EdgeInsets? dropDownPadding`              | The padding applied to the dropdown container                                                                                                      |\n| `EdgeInsets? dropDownHeaderPadding`        | The padding applied to the dropdown header                                                                                                         |\n| `Widget? bottomSheetTitle`                 | The widget displayed as the title of the bottom sheet                                                                                              |\n| `Widget? submitButtonChild`                | Defines a custom widget to display as the child of the submit button when `[enableMultipleSelection]` is true                                      |\n| `Widget? clearButtonChild`                 | Defines a custom widget to display as the child of the clear button when `[enableMultipleSelection]` is true                                       |\n| `EdgeInsets? searchTextFieldPadding`       | The padding applied to the search text field                                                                                                       |\n| `TextFormField? searchWidget`              | Defines a custom widget to display the text box for searching                                                                                      |\n| `EdgeInsets? selectAllTextButtonPadding`   | The padding applied to the \"select all\" and \"deselect all\" TextButtons                                                                             |\n| `Widget? selectAllTextButtonChild`         | Defines a custom widget to display as the child of the selectAll text button when `[enableMultipleSelection]` and `[isSelectAllVisible]` is true   |\n| `Widget? deSelectAllTextButtonChild`       | Defines a custom widget to display as the child of the deSelectAll text button when `[enableMultipleSelection]` and `[isSelectAllVisible]` is true |\n| `SearchDelegate\u003cT\u003e? searchDelegate`        | A delegate used to configure the custom search functionality in the dropdown                                                                       |\n\n## Optional parameters of DropDown with Default value\n\n| Parameter                                 | Default                             | Description                                                                                                                     |\n|-------------------------------------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|\n| `bool enableMultipleSelection`            | false                               | Enables single or multiple selection for the drop down list items                                                               |\n| `Color listTileColor`                     | Colors.transparent                  | Defines the background color of each `ListTile` in the dropdown list                                                            |\n| `Widget selectedListTileTrailingWidget`   | Icon(Icons.check_box)               | The widget displayed as a trailing icon when a list item is selected                                                            |\n| `Widget deSelectedListTileTrailingWidget` | Icon(Icons.check_box_outline_blank) | The widget displayed as a trailing icon when a list item is not selected                                                        |\n| `bool useRootNavigator`                   | false                               | Specifies whether a modal bottom sheet should be displayed using the root navigator                                             |\n| `bool enableDrag`                         | true                                | Specifies whether the bottom sheet can be dragged up and down and dismissed by swiping downwards                                |\n| `bool isDismissible`                      | true                                | Specifies whether the bottom sheet will be dismissed when the user taps on the scrim                                            |\n| `double initialChildSize`                 | 0.7                                 | The initial fractional value of DraggableScrollableSheet                                                                        |\n| `double minChildSize`                     | 0.3                                 | The minimum fractional value of DraggableScrollableSheet                                                                        |\n| `double maxChildSize`                     | 0.9                                 | The maximum fractional value of DraggableScrollableSheet                                                                        |\n| `Color dropDownBackgroundColor`           | Colors.transparent                  | Sets the background color of the dropdown                                                                                       |\n| `String submitButtonText`                 | 'Submit'                            | Specifies the text displayed on the submit button when `[enableMultipleSelection]` is true                                      |\n| `String clearButtonText`                  | 'Clear'                             | Specifies the text displayed on the clear button when `[enableMultipleSelection]` is true                                       |\n| `bool isSearchVisible`                    | true                                | Controls the visibility of the search widget                                                                                    |\n| `String searchHintText`                   | 'Search'                            | Specifies the text displayed on the search widget as hint text                                                                  |\n| `Color searchFillColor`                   | Colors.black12                      | This is the fill color for the input field                                                                                      |\n| `Color searchCursorColor`                 | Colors.black                        | This is the cursor color for the input field                                                                                    |\n| `bool isSelectAllVisible`                 | true                                | Controls the visibility of the \"select all\" widget when `[enableMultipleSelection]` is true                                     |\n| `String selectAllButtonText`              | 'Select All'                        | Specifies the text displayed on the selectAll text button when `[enableMultipleSelection]` and `[isSelectAllVisible]` is true   |\n| `String deSelectAllButtonText`            | 'Deselect All'                      | Specifies the text displayed on the deSelectAll text button when `[enableMultipleSelection]` and `[isSelectAllVisible]` is true |\n\n## Required parameters of DropDownState\n\n| Parameter              | Description                                                                                                          |\n|------------------------|----------------------------------------------------------------------------------------------------------------------|\n| `DropDown\u003cT\u003e dropDown` | The `DropDown` configuration object that defines the behavior, appearance, and other properties of the dropdown menu |\n\n## Optional parameters of DropDownState\n\n| Parameter                  | Description                   |\n|----------------------------|-------------------------------|\n| `ShapeBorder? shapeBorder` | The shape of the bottom sheet |\n\n## Method of DropDownState\n\n| Method                                 | Description                                        |\n|----------------------------------------|----------------------------------------------------|\n| `void showModal(BuildContext context)` | Displays the dropdown menu as a modal bottom sheet |\n\n## Guideline for contributors\n\n* Contributions to our repository are always welcome! We encourage contributors to submit pull\n  requests for development and improvements.\n\n## Guideline for Reporting an Issue or Feature Request\n\nTo help us better understand and resolve the issue, please include the following details when\nreporting:\n\n* Library version\n* Code snippet\n* Logs (if applicable)\n* Device specifications (e.g., manufacturer, OS version)\n* Screenshot or video with steps to reproduce the issue\n* Any other relevant libraries used\n\n## LICENSE!\n\n**drop_down_list**\nis [MIT-licensed.](https://github.com/Mindinventory/drop_down_list/blob/main/LICENSE)\n\n## Let us know!\n\nWe’d be really happy if you send us links to your projects where you use our open-source libraries.\nJust send an email to [sales@mindinventory.com](mailto:sales@mindinventory.com) And do let us know\nif you have any questions or suggestion regarding our work.\n\nVisit our website [mindinventory.com](https://www.mindinventory.com)\n\nLet us know if you are interested to building Apps or Designing Products.\n\u003cp\u003e\u003ca href=\"https://www.mindinventory.com/contact-us.php?utm_source=gthb\u0026utm_medium=repo\u0026utm_campaign=drop_down_list\" target=\"__blank\"\u003e\n\u003cimg src=\"https://github.com/Mindinventory/drop_down_list/raw/main/assets/have_a_project_button.png\" width=\"203\" height=\"43\"  alt=\"flutter app development\"\u003e\n\u003c/a\u003e\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMindinventory%2Fdrop_down_list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMindinventory%2Fdrop_down_list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMindinventory%2Fdrop_down_list/lists"}