import 'package:flutter/material.dart'; class ResponsiveWidget extends StatelessWidget { const ResponsiveWidget({ required this.largeScreen, this.mediumScreen, this.smallScreen, super.key, }); final Widget largeScreen; final Widget? mediumScreen; final Widget? smallScreen; static bool isSmallScreen(BuildContext context) { return MediaQuery.sizeOf(context).width < 800; } static bool isLargeScreen(BuildContext context) { return MediaQuery.sizeOf(context).width > 1200; } static bool isMediumScreen(BuildContext context) { return MediaQuery.sizeOf(context).width >= 800 && MediaQuery.sizeOf(context).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; } }, ); } }