show<T> static method
Future<T?> ?
show<T>({
- required BuildContext context,
- required List<
T> list, - List<
T> ? selectedListData, - LabelDelegate<
T> ? tileLabel, - required SearchPredict<
T> onItemSearch, - required OnApplyButtonClick<
T> onApplyButtonClick, - SuggestionBuilder<
T> ? suggestionBuilder, - String? searchFieldHint,
- InputDecorationTheme? searchFieldDecorationTheme,
- TextStyle? searchFieldStyle,
- AppbarBottom? buildAppbarBottom,
- bool enableOnlySingleSelection = false,
- Widget? emptySearchChild,
- FilterListDelegateThemeData? theme,
- ButtonStyle? applyButtonStyle,
- String? applyButtonText = 'Apply',
Shows a full screen search page and returns the search result selected by the user when the page is closed. Open search view page that implement SearchDelegate
await FilterListDelegate.show<String>(
context: context,
list: ['Jon', 'Abraham', 'John', 'Peter', 'Paul', 'Mary', 'Jane'],
onItemSearch: (user, query) {
return user.toLowerCase().contains(query.toLowerCase());
},
tileLabel: (user) => user,
emptySearchChild: Center(child: Text('No user found')),
enableOnlySingleSelection: true,
searchFieldHint: 'Search Here..',
onApplyButtonClick: (list) {
// do something with list
},
);
Implementation
static Future<T?>? show<T>({
required BuildContext context,
required List<T> list,
List<T>? selectedListData,
LabelDelegate<T>? tileLabel,
required SearchPredict<T> onItemSearch,
required OnApplyButtonClick<T> onApplyButtonClick,
SuggestionBuilder<T>? suggestionBuilder,
String? searchFieldHint,
InputDecorationTheme? searchFieldDecorationTheme,
TextStyle? searchFieldStyle,
AppbarBottom? buildAppbarBottom,
bool enableOnlySingleSelection = false,
Widget? emptySearchChild,
FilterListDelegateThemeData? theme,
ButtonStyle? applyButtonStyle,
String? applyButtonText = 'Apply',
}) async {
final selectedItem = await showSearch(
context: context,
delegate: FilterListDelegate(
listData: list,
selectedListData: selectedListData,
tileLabel: tileLabel,
onItemSearch: onItemSearch,
onApplyButtonClick: onApplyButtonClick,
searchFieldHint: searchFieldHint,
suggestionBuilder: suggestionBuilder,
searchFieldDecorationTheme: searchFieldDecorationTheme,
searchFieldStyle: searchFieldStyle,
buildAppbarBottom: buildAppbarBottom,
enableOnlySingleSelection: enableOnlySingleSelection,
emptySearchChild: emptySearchChild,
theme: theme,
applyButtonStyle: applyButtonStyle,
applyButtonText: applyButtonText!,
),
);
return Future.value(selectedItem);
}