root method

  1. @override
Widget root(
  1. BuildContext context,
  2. NavigationViewController controller,
  3. Widget parent
)
override

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,
        ],
      );
    }
  }
}