buildChild method
Implementation
Widget buildChild(InfiniteMenu rootMenu, InfiniteMenu parentMenu, int level) {
List<InfiniteMenu> currentData = parentMenu.children ?? [];
Widget parent = Column(
children: [
ListView.separated(
shrinkWrap: true,
controller: ScrollController(),
physics: const NeverScrollableScrollPhysics(),
itemCount: currentData.length,
itemBuilder: (context, index) {
InfiniteMenu bean = currentData[index];
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
parentMenu.isChecked
? widget.buildMenuItem
.call(this, bean == _lastClickItem, bean, level)
: const SizedBox(),
parentMenu.isChecked
? Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: Padding(
padding: EdgeInsets.only(
left: widget.titleChildSpace * (level + 1)),
child: buildChild(rootMenu, bean, level + 1),
))
],
)
: const SizedBox(),
],
);
},
separatorBuilder: (context, index) {
return widget.buildSeparator
?.call(context, currentData[index], level) ??
const SizedBox();
})
],
);
return parentMenu.isChecked ? parent : const SizedBox();
}