Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

added leading icon #103

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions example/lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ class _MyHomePageState extends State<MyHomePage> {
initialChildSize: 0.7,
maxChildSize: 0.95,
title: Text("Animals"),
leadingButtonIcon: Icon(Icons.pets),
leadingButtonIconPadding: EdgeInsets.only(right: 16),
buttonText: Text("Favorite Animals"),
items: _items,
searchable: true,
Expand Down Expand Up @@ -234,6 +236,9 @@ class _MyHomePageState extends State<MyHomePage> {
_selectedAnimals5 = val;
},
dialogWidth: MediaQuery.of(context).size.width * 0.7,
leadingButtonIcon: Icon(Icons.pets),
leadingButtonIconPadding: EdgeInsets.only(right: 16),
buttonText: Text('Favorite Animals'),
items: _items,
initialValue:
_selectedAnimals5, // setting the value of this in initState() to pre-select values.
Expand Down
2 changes: 1 addition & 1 deletion example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ packages:
path: ".."
relative: true
source: path
version: "4.1.2"
version: "4.1.3"
path:
dependency: transitive
description:
Expand Down
37 changes: 35 additions & 2 deletions lib/bottom_sheet/multi_select_bottom_sheet_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,15 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
/// Specify the button icon.
final Icon? buttonIcon;

/// Specify the leading button icon.
final Icon? leadingButtonIcon;

/// Specify the button icon padding.
final EdgeInsets? buttonIconPadding;

/// Specify the leading button icon padding.
final EdgeInsets? leadingButtonIconPadding;

/// List of items to select from.
final List<MultiSelectItem<V>> items;

Expand Down Expand Up @@ -115,6 +124,9 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
this.title,
this.buttonText,
this.buttonIcon,
this.leadingButtonIcon,
this.buttonIconPadding,
this.leadingButtonIconPadding,
this.listType,
this.decoration,
this.onSelectionChanged,
Expand Down Expand Up @@ -165,6 +177,9 @@ class MultiSelectBottomSheetField<V> extends FormField<List<V>> {
initialValue: initialValue,
barrierColor: barrierColor,
buttonIcon: buttonIcon,
leadingButtonIcon: leadingButtonIcon,
buttonIconPadding: buttonIconPadding,
leadingButtonIconPadding: leadingButtonIconPadding,
buttonText: buttonText,
cancelText: cancelText,
chipDisplay: chipDisplay,
Expand Down Expand Up @@ -196,6 +211,9 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
final BoxDecoration? decoration;
final Text? buttonText;
final Icon? buttonIcon;
final Icon? leadingButtonIcon;
final EdgeInsets? buttonIconPadding;
final EdgeInsets? leadingButtonIconPadding;
final List<MultiSelectItem<V>> items;
final List<V>? initialValue;
final Widget? title;
Expand Down Expand Up @@ -231,6 +249,9 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
this.title,
this.buttonText,
this.buttonIcon,
this.leadingButtonIcon,
this.buttonIconPadding,
this.leadingButtonIconPadding,
this.listType,
this.decoration,
this.onSelectionChanged,
Expand Down Expand Up @@ -267,6 +288,9 @@ class _MultiSelectBottomSheetFieldView<V> extends StatefulWidget {
title = field.title,
buttonText = field.buttonText,
buttonIcon = field.buttonIcon,
leadingButtonIcon = field.leadingButtonIcon,
buttonIconPadding = field.buttonIconPadding,
leadingButtonIconPadding = field.leadingButtonIconPadding,
listType = field.listType,
decoration = field.decoration,
onSelectionChanged = field.onSelectionChanged,
Expand Down Expand Up @@ -453,8 +477,17 @@ class __MultiSelectBottomSheetFieldViewState<V>
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
widget.buttonText ?? Text("Select"),
widget.buttonIcon ?? Icon(Icons.arrow_downward),
if (widget.leadingButtonIcon != null)
Padding(
padding: widget.leadingButtonIconPadding ?? EdgeInsets.zero,
child: widget.leadingButtonIcon,
),
Expanded(child: widget.buttonText ?? const Text("Select")),
if (widget.buttonIcon != null)
Padding(
padding: widget.buttonIconPadding ?? EdgeInsets.zero,
child: widget.buttonIcon,
),
],
),
),
Expand Down
37 changes: 35 additions & 2 deletions lib/dialog/multi_select_dialog_field.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,15 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
/// Specify the button icon.
final Icon? buttonIcon;

/// Specify the leading button icon.
final Icon? leadingButtonIcon;

/// Specify the button icon padding.
final EdgeInsets? buttonIconPadding;

/// Specify the leading button icon padding.
final EdgeInsets? leadingButtonIconPadding;

/// The text at the top of the dialog.
final Widget? title;

Expand Down Expand Up @@ -109,6 +118,9 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
this.title,
this.buttonText,
this.buttonIcon,
this.leadingButtonIcon,
this.buttonIconPadding,
this.leadingButtonIconPadding,
this.listType,
this.decoration,
this.onSelectionChanged,
Expand Down Expand Up @@ -150,6 +162,9 @@ class MultiSelectDialogField<V> extends FormField<List<V>> {
items: items,
buttonText: buttonText,
buttonIcon: buttonIcon,
leadingButtonIcon: leadingButtonIcon,
buttonIconPadding: buttonIconPadding,
leadingButtonIconPadding: leadingButtonIconPadding,
chipDisplay: chipDisplay,
decoration: decoration,
listType: listType,
Expand Down Expand Up @@ -186,6 +201,9 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
final BoxDecoration? decoration;
final Text? buttonText;
final Icon? buttonIcon;
final Icon? leadingButtonIcon;
final EdgeInsets? buttonIconPadding;
final EdgeInsets? leadingButtonIconPadding;
final Widget? title;
final List<MultiSelectItem<V>> items;
final void Function(List<V>)? onSelectionChanged;
Expand Down Expand Up @@ -218,6 +236,9 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
this.title,
this.buttonText,
this.buttonIcon,
this.leadingButtonIcon,
this.buttonIconPadding,
this.leadingButtonIconPadding,
this.listType,
this.decoration,
this.onSelectionChanged,
Expand Down Expand Up @@ -252,6 +273,9 @@ class _MultiSelectDialogFieldView<V> extends StatefulWidget {
title = field.title,
buttonText = field.buttonText,
buttonIcon = field.buttonIcon,
leadingButtonIcon = field.leadingButtonIcon,
buttonIconPadding = field.buttonIconPadding,
leadingButtonIconPadding = field.leadingButtonIconPadding,
listType = field.listType,
decoration = field.decoration,
onSelectionChanged = field.onSelectionChanged,
Expand Down Expand Up @@ -432,8 +456,17 @@ class __MultiSelectDialogFieldViewState<V>
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
widget.buttonText ?? const Text("Select"),
widget.buttonIcon ?? const Icon(Icons.arrow_downward),
if (widget.leadingButtonIcon != null)
Padding(
padding: widget.leadingButtonIconPadding ?? EdgeInsets.zero,
child: widget.leadingButtonIcon,
),
Expanded(child: widget.buttonText ?? const Text("Select")),
if (widget.buttonIcon != null)
Padding(
padding: widget.buttonIconPadding ?? EdgeInsets.zero,
child: widget.buttonIcon,
),
],
),
),
Expand Down
2 changes: 1 addition & 1 deletion pubspec.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: multi_select_flutter
description: A flexible multi select package for Flutter. Make multi select widgets the way you want.
version: 4.1.2
version: 4.1.3
repository: https://github.com/CHB61/flutter-multi-select
issue_tracker: https://github.com/CHB61/flutter-multi-select
documentation: https://github.com/CHB61/flutter-multi-select
Expand Down