import 'package:flutter/material.dart'; class ResponsiveWidget extends StatelessWidget { final Widget largeScreen; final Widget mediumScreen; final Widget smallScreen; const ResponsiveWidget( {Key key, @required this.largeScreen, this.mediumScreen, this.smallScreen}) : super(key: key); static bool isSmallScreen(BuildContext context) { return MediaQuery.of(context).size.width < 800; } static bool isLargeScreen(BuildContext context) { return MediaQuery.of(context).size.width > 1200; } static bool isMediumScreen(BuildContext context) { return MediaQuery.of(context).size.width >= 800 && MediaQuery.of(context).size.width <= 1200; } @override Widget build(BuildContext context) { return LayoutBuilder( builder: (context, constraints) { if (constraints.maxWidth > 1200) { return largeScreen; } else if (constraints.maxWidth <= 1200 && constraints.maxWidth >= 800) { return mediumScreen ?? largeScreen; } else { return smallScreen ?? largeScreen; } }, ); } }