root method
Implementation
@override
Widget root(
BuildContext context,
NavigationViewController controller,
Widget parent,
) {
var isMargin = controller.marginAll > 0;
var type = controller.positionType;
if (isMargin) {
return Stack(
alignment: Alignment.center,
children: [
Expanded(child: builder(context, controller.currentIndex)),
Positioned(
left: type.position.left,
right: type.position.right,
top: type.position.top,
bottom: type.position.bottom,
child: parent,
),
],
);
} else {
if (controller.positionType.isYMode) {
return Column(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (controller.positionType.isTopMode) parent,
Expanded(child: builder(context, controller.currentIndex)),
if (controller.positionType.isBottomMode) parent,
],
);
} else {
return Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
if (controller.positionType.isLeftMode) parent,
Expanded(child: builder(context, controller.currentIndex)),
if (controller.positionType.isRightMode) parent,
],
);
}
}
}