import 'dart:math'; import 'package:flutter/material.dart'; class MaxWidthBody extends StatelessWidget { final Widget child; final double maxWidth; final bool withScrolling; const MaxWidthBody({ this.child, this.maxWidth = 600, this.withScrolling = false, Key key, }) : super(key: key); @override Widget build(BuildContext context) { return LayoutBuilder( builder: (context, constraints) { final padding = EdgeInsets.symmetric( horizontal: max(0, (constraints.maxWidth - maxWidth) / 2), ); return withScrolling ? SingleChildScrollView( physics: ScrollPhysics(), child: Padding( padding: padding, child: child, ), ) : Padding( padding: padding, child: child, ); }, ); } }