responsive_layout_builder
Flutter package for building responsive layout based on screen sizes and orientation. It could be wristwatch, small/medium/large mobile, small/large tablet or desktop.
Getting Started
Widget approach
ResponsiveLayoutBuilder could be used as usual widget builder such as LayoutBuilder or OrientationBuilder, etc.
ResponsiveLayoutBuilder(
builder: (context, screenSize) {
// Use size argument to build size dependent widgets
},
),
size property within screenSize stores LayoutSize which could be watch, mobile, tablet, desktop or tv.
mobile property within screenSize stores MobileLayoutSize which could be small, medium or large.
tablet property within screenSize stores TabletLayoutSize which could be small or large.
Functional approach
For using functional approach to retrieve current size use following:
// for getting mobile layout size
getMobileLayoutSize(width: MediaQuery.of(context).size.width);
// for getting tablet layout size
getTabletLayoutSize(width: MediaQuery.of(context).size.width);
// for getting screen size based on width
getScreenSize(width: MediaQuery.of(context).size.width);
// for getting screen size based on context
getContextualScreenSize(context: context);
If you need to specify ScreenSizeSettings for all above functions sizes argument is needed to be passed, like this:
sizes: ScreenSizeSettings(...)
For getScreenSize and getContextualScreenSize could be specified also orientation and defaultSize.
TODO
- Figure out how to determine TV
- Add tests