SideMenu constructor
SideMenu({
- Key? key,
- required List items,
- required SideMenuController controller,
- Widget? title,
- SideMenuStyle? style,
- bool? showToggle = false,
- ValueChanged<
SideMenuDisplayMode> ? onDisplayModeChanged, - Duration? displayModeToggleDuration,
- int? collapseWidth = 600,
Easy Sidemenu widget
Sidemenu is a menu that is usually located on the left or right of the page and can used for navigation
Implementation
SideMenu({
Key? key,
required this.items,
required this.controller,
this.title,
this.footer,
this.style,
this.showToggle = false,
this.onDisplayModeChanged,
this.displayModeToggleDuration,
this.alwaysShowFooter = false,
this.collapseWidth = 600,
}) : super(key: key) {
global.style = style ?? SideMenuStyle();
global.controller = controller;
int sideMenuExpansionItemCount = 0, sideMenuExpansionItemIndex = -1;
for (int index = 0; index < items.length; index++) {
if (items[index] is SideMenuExpansionItem) {
sideMenuExpansionItemCount = sideMenuExpansionItemCount + 1;
}
}
global.expansionStateList =
List<bool>.filled(sideMenuExpansionItemCount, false);
sidemenuitems.items = items.map((data) {
if (data is SideMenuItem) {
return SideMenuItemWithGlobal(
global: global,
title: data.title,
onTap: data.onTap,
icon: data.icon,
iconWidget: data.iconWidget,
badgeContent: data.badgeContent,
badgeColor: data.badgeColor,
tooltipContent: data.tooltipContent,
trailing: data.trailing,
builder: data.builder,
);
} else if (data is SideMenuExpansionItem) {
sideMenuExpansionItemIndex = sideMenuExpansionItemIndex + 1;
return SideMenuExpansionItemWithGlobal(
global: global,
title: data.title,
icon: data.icon,
index: sideMenuExpansionItemIndex,
iconWidget: data.iconWidget,
children: data.children
.map((childData) => SideMenuItemWithGlobal(
global: global,
title: childData.title,
onTap: childData.onTap,
icon: childData.icon,
iconWidget: childData.iconWidget,
badgeContent: childData.badgeContent,
badgeColor: childData.badgeColor,
tooltipContent: childData.tooltipContent,
trailing: childData.trailing,
builder: childData.builder,
))
.toList(),
);
}
}).toList();
global.items = sidemenuitems.items;
}