getView method
Implementation
Widget getView(BuildContext context) {
int getSelectedItemCount() {
if(showIncludeInactiveButton && !includeInactive) {
return mainList.where((element) => element.isSelect && (element.active ?? true)).length;
}
return mainList.where((element) => element.isSelect).length;
}
int mainListLength () {
if(showIncludeInactiveButton && !includeInactive) {
return mainList.where((element) => element.active ?? true).length;
}
return totalNetworkListCount ?? mainList.length;
}
Widget selectionList = UFUMultiSelectList(
controller: scrollController,
list: list,
onItemTap: onItemTap,
canShowMore: canShowMore,
isLoading: isLoading,
type: type,
listLoader: listLoader,
searchKeyWord: searchInputCtrl?.text ?? '',
showInactiveUserLabel: showIncludeInactiveButton,
);
return AnimatedPadding(
duration: const Duration(milliseconds: 100),
padding: UFUResponsiveDesign.popOverBottomInsets,
child: Container(
margin: EdgeInsets.only(
left: 10,
right: 10,
top: type == UFUMultiSelectType.network || UFUScreen.isTablet
? 0 :
MediaQuery.of(context).size.height * 0.05,
bottom: isFilterSheet && !UFUScreen.hasBottomPadding ? 20 : 0,
),
decoration: BoxDecoration(
borderRadius: getBorderRadius(),
color: AppTheme.themeColors.themeBlue),
child: SafeArea(
top: true,
bottom: !isFilterSheet,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
UFUMultiSelectHeader(
totalAmount: totalAmount,
inputHintText: inputHintText,
canShowSearchBar: type == UFUMultiSelectType.network || (searchInputCtrl?.text.isNotEmpty ?? false) ? true : !isFilterSheet && mainList.length > 8,
title: title!,
searchInputCtrl: searchInputCtrl,
onSearch: onSearch,
headerPrefixChild: headerPrefixChild,
canShowSubList: canShowSubList ?? false,
helperText: helperText,
showSubList: showSubList,
isViewSubList: isViewSubList,
isSelectedSubListItems: isSelectedSubListItems ?? false,
),
UFUMultiSelectSubHeader(
mainListLength: mainListLength(),
listLength: list.length,
canShowClearAll: !(hideSelectAll || searchInputCtrl!.text.isNotEmpty),
selectedItemCount: getSelectedItemCount(),
selectAndClearAll: selectAndClearAll,
canShowCount: list.isNotEmpty || selectedItems.where((element) => element.isSelect).isNotEmpty,
tempSelectedItemsCount: tempSelectedItemsCount,
filterListItemsCount: filterListItemsCount,
isViewSubList: isViewSubList,
subList: subList,
showIncludeInactiveButton: showIncludeInactiveButton,
includeInactive: includeInactive,
onTapIncludeInactiveButton: onTapIncludeInactiveButton,
),
if(type == UFUMultiSelectType.network) ...{
Flexible(
child: selectionList,
),
} else ...{
Flexible(
child: SingleChildScrollView(
controller: type != UFUMultiSelectType.local ? scrollController : scrollList,
child: Column(
children: [
if (isViewSubList && subList.isNotEmpty)
Padding(
padding: const EdgeInsets.symmetric(vertical: 15),
child: TweenAnimationBuilder<double>(
duration: const Duration(milliseconds: 200),
tween: Tween<double>(begin: 0, end: getsubListHeight()),
builder: (BuildContext context, dynamic value,Widget? child) {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 20),
child: Container(
decoration: BoxDecoration(
color: AppTheme.themeColors.dimGray.withAlpha(50),
borderRadius: BorderRadius.circular(8)),
constraints: BoxConstraints(maxHeight: value),
child: UFUMultiSelectSubList(
controller: scrollController,
subList: subList,
onSubItemTap: onSubItemTap,
canShowMore: canShowMore,
isLoading: isLoading,
type: type,
listLoader: listLoader,
subTitleHeader: subTitleHeader ?? 'user groups',
),
),
);
},
),
),
selectionList,
],
),
),
),
},
UFUMultiSelectFooter(
disableButtons: disableButtons,
canDisableDoneButton: canDisableDoneButton,
doneIcon: doneIcon,
selectedItemCount: getSelectedItemCount(),
callBack: (String action) {
if (action == 'done') {
onDone!();
return;
}
Navigator.of(context).pop();
},
),
],
),
),
),
);
}