flutter_multiselect
Flutter package for multi-select UI widget
Android and iOS screenshot-
Getting Started
- Add the package into
pubspec.yaml
dependencies:
flutter_multiselect:
- Import in your code
import 'package:flutter_multiselect/flutter_multiselect.dart';
Why? :wrench:
By default, there is no UI control for multi-select in iOS and Android, and my widget can be used to bridge this gap.
Example without customization :one:
child: MultiSelect(
autovalidate: false,
titleText: "Countries",
validator: (value) {
if (value == null) {
return 'Please select one or more option(s)';
}
},
errorText: 'Please select one or more option(s)',
dataSource: [
{
"display": "Australia",
"value": 1,
},
{
"display": "Canada",
"value": 2,
},
{
"display": "India",
"value": 3,
},
{
"display": "United States",
"value": 4,
}
],
textField: 'display',
valueField: 'value',
filterable: true,
required: true,
value: null,
onSaved: (value) {
print('The saved values are $value');
}
),
Example with customization :two:
Check the colors and text to see the changes that it makes to the modal interface
child: MultiSelect(
//--------customization selection modal-----------
buttonBarColor: Colors.red,
cancelButtonText: "Exit",
titleText: "Custom Title",
checkBoxColor: Colors.black,
selectedOptionsInfoText: "Selected custom text (tap to remove)",
selectedOptionsBoxColor: Colors.green,
autovalidate: true,
maxLength: 5, // optional
//--------end customization selection modal------------
validator: (dynamic value) {
if (value == null) {
return 'Please select one or more option(s)';
}
return null;
},
errorText: 'Please select one or more option(s)',
dataSource: [
{"name": "Afghanistan", "code": "AF"},
{"name": "Ă…land Islands", "code": "AX"},
{"name": "Albania", "code": "AL"},
],
textField: 'name',
valueField: 'code',
filterable: true,
required: true,
onSaved: (value) {
print('The saved values are $value');
}),
change: (value) {
print('The selected values are $value');
})
and of course you can check the full list of the parameters to personalize your modal!
Here, the complete list of parameters to modify the selection modal :clipboard:
Type | Parameter |
---|---|
Color | buttonBarColor |
String | cancelButtonText |
IconData | cancelButtonIcon |
Color | cancelButtonColor |
Color | cancelButtonTextColor |
String | saveButtonText |
IconData | saveButtonIcon |
Color | saveButtonColor |
Color | saveButtonTextColor |
String | clearButtonText |
IconData | clearButtonIcon |
Color | clearButtonColor |
Color | clearButtonTextColor |
String | deleteButtonTooltipText |
IconData | deleteIcon |
Color | deleteIconColor |
Color | selectedOptionsBoxColor |
String | selectedOptionsInfoText |
Color | selectedOptionsInfoTextColor |
IconData | checkedIcon |
IconData | uncheckedIcon |
Color | checkBoxColor |
Color | searchBoxColor |
String | searchBoxHintText |
Color | searchBoxFillColor |
IconData | searchBoxIcon |
String | searchBoxToolTipText |
Size | responsiveDialogSize |