Skip to content

Instantly share code, notes, and snippets.

@ggichure
Created November 19, 2019 16:55
Show Gist options
  • Select an option

  • Save ggichure/cc13c38a601755ed2c29b42a5d03e64b to your computer and use it in GitHub Desktop.

Select an option

Save ggichure/cc13c38a601755ed2c29b42a5d03e64b to your computer and use it in GitHub Desktop.
responsive widget
import 'package:flutter_web/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 > 800;
}
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;
}
},
);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment