@@ -48,8 +48,8 @@ import 'package:flutter/material.dart';
4848class ResponsiveWrapper extends StatefulWidget {
4949 final Widget child;
5050 final List <ResponsiveBreakpoint > breakpoints;
51- final double maxWidth;
5251 final double minWidth;
52+ final double maxWidth;
5353 final String defaultName;
5454 final bool defaultScale;
5555 final double defaultScaleFactor;
@@ -60,9 +60,9 @@ class ResponsiveWrapper extends StatefulWidget {
6060 const ResponsiveWrapper ({
6161 Key key,
6262 @required this .child,
63- this .breakpoints = const [],
64- this .maxWidth,
63+ this .breakpoints,
6564 this .minWidth = 450 ,
65+ this .maxWidth,
6666 this .defaultName,
6767 this .defaultScale = false ,
6868 this .defaultScaleFactor = 1 ,
@@ -75,25 +75,20 @@ class ResponsiveWrapper extends StatefulWidget {
7575
7676 static Widget builder (
7777 Widget child, {
78- List <ResponsiveBreakpoint > breakpoints = const [],
79- double maxWidth,
78+ List <ResponsiveBreakpoint > breakpoints,
8079 double minWidth = 450 ,
80+ double maxWidth,
8181 String defaultName,
8282 bool defaultScale = false ,
8383 double defaultScaleFactor = 1 ,
8484 Widget background,
8585 MediaQueryData mediaQueryData,
8686 }) {
87- // Order breakpoints from largest to smallest.
88- // Perform ordering operation to allow breakpoints
89- // to be accepted in any order.
90- breakpoints.sort ((a, b) => b.breakpoint.compareTo (a.breakpoint));
91-
9287 return ResponsiveWrapper (
9388 child: child,
9489 breakpoints: breakpoints,
95- maxWidth: maxWidth,
9690 minWidth: minWidth,
91+ maxWidth: maxWidth,
9792 defaultName: defaultName,
9893 defaultScale: defaultScale,
9994 defaultScaleFactor: defaultScaleFactor,
@@ -141,7 +136,7 @@ class _ResponsiveWrapperState extends State<ResponsiveWrapper>
141136 MediaQuery .of (context).size.height;
142137 }
143138
144- get breakpoints => widget. breakpoints;
139+ List < ResponsiveBreakpoint > breakpoints;
145140
146141 /// Get screen width calculation.
147142 double screenWidth = 0 ;
@@ -288,7 +283,7 @@ class _ResponsiveWrapperState extends State<ResponsiveWrapper>
288283 /// Active breakpoint is the first breakpoint smaller
289284 /// or equal to the [screenWidth] .
290285 ResponsiveBreakpoint getActiveBreakpoint (double screenWidth) {
291- return widget. breakpoints.firstWhere (
286+ return breakpoints.firstWhere (
292287 (element) => screenWidth >= element.breakpoint,
293288 orElse: // No breakpoint found.
294289 () => ResponsiveBreakpoint (
@@ -298,6 +293,12 @@ class _ResponsiveWrapperState extends State<ResponsiveWrapper>
298293 @override
299294 void initState () {
300295 super .initState ();
296+ // Order breakpoints from largest to smallest.
297+ // Perform ordering operation to allow breakpoints
298+ // to be accepted in any order.
299+ breakpoints = widget.breakpoints ?? [];
300+ breakpoints? .sort ((a, b) => b.breakpoint.compareTo (a.breakpoint));
301+
301302 WidgetsBinding .instance.addObserver (this );
302303 WidgetsBinding .instance.addPostFrameCallback ((_) {
303304 setDimensions ();
0 commit comments