This package provides a set of utilities to aid in building responsive Flutter applications that adapt to different screen sizes and orientations.
Firstly, add package to pubspec.yaml
.
Then, wrap your main MaterialApp
widget with the TheResponsiveBuilder
void main() => runApp(
TheResponsiveBuilder(
builder: (context, orientation, screenType) {
return MaterialApp(
//... your other MaterialApp properties
);
},
),
);
With the utilities set up, you can easily use the extensions provided:
// This will set the height to 20% of the screen height
Container(height: 20.h, ...);
// This will set the width to 50% of the screen width
Container(width: 50.w, ...);
// This uses a logarithmic formula to scale UI elements based on screen size and pixel density.
TextStyle(fontSize: 16.dp, ...);
// This scales the text size based on the user's font size settings.
TextStyle(fontSize: 16.sp, ...);
if (context.screenType == ScreenType.mobile) {
// Build UI for mobile
} else {
// Build UI for tablet
}
if (context.orientation == Orientation.portrait) {
// Build UI for portrait mode
} else {
// Build UI for landscape mode
}
// Lock screen orientation to Portrait mode
context.lockToPortrait();
// Lock screen orientation to Landscape mode
context.lockToLandscape();
// Unlock screen orientation to automatic mode
context.unlockOrientation();