Showing
1 changed file
with
4 additions
and
0 deletions
| @@ -75,6 +75,7 @@ class ScreenUtilInit extends StatefulWidget { | @@ -75,6 +75,7 @@ class ScreenUtilInit extends StatefulWidget { | ||
| 75 | this.useInheritedMediaQuery = false, | 75 | this.useInheritedMediaQuery = false, |
| 76 | this.ensureScreenSize = false, | 76 | this.ensureScreenSize = false, |
| 77 | this.responsiveWidgets, | 77 | this.responsiveWidgets, |
| 78 | + this.excludeWidgets, | ||
| 78 | this.fontSizeResolver = FontSizeResolvers.width, | 79 | this.fontSizeResolver = FontSizeResolvers.width, |
| 79 | }) : super(key: key); | 80 | }) : super(key: key); |
| 80 | 81 | ||
| @@ -90,6 +91,7 @@ class ScreenUtilInit extends StatefulWidget { | @@ -90,6 +91,7 @@ class ScreenUtilInit extends StatefulWidget { | ||
| 90 | /// The [Size] of the device in the design draft, in dp | 91 | /// The [Size] of the device in the design draft, in dp |
| 91 | final Size designSize; | 92 | final Size designSize; |
| 92 | final Iterable<String>? responsiveWidgets; | 93 | final Iterable<String>? responsiveWidgets; |
| 94 | + final Iterable<String>? excludeWidgets; | ||
| 93 | 95 | ||
| 94 | @override | 96 | @override |
| 95 | State<ScreenUtilInit> createState() => _ScreenUtilInitState(); | 97 | State<ScreenUtilInit> createState() => _ScreenUtilInitState(); |
| @@ -98,6 +100,7 @@ class ScreenUtilInit extends StatefulWidget { | @@ -98,6 +100,7 @@ class ScreenUtilInit extends StatefulWidget { | ||
| 98 | class _ScreenUtilInitState extends State<ScreenUtilInit> | 100 | class _ScreenUtilInitState extends State<ScreenUtilInit> |
| 99 | with WidgetsBindingObserver { | 101 | with WidgetsBindingObserver { |
| 100 | final _canMarkedToBuild = HashSet<String>(); | 102 | final _canMarkedToBuild = HashSet<String>(); |
| 103 | + final _excludedWidgets = HashSet<String>(); | ||
| 101 | MediaQueryData? _mediaQueryData; | 104 | MediaQueryData? _mediaQueryData; |
| 102 | final _binding = WidgetsBinding.instance; | 105 | final _binding = WidgetsBinding.instance; |
| 103 | final _screenSizeCompleter = Completer<void>(); | 106 | final _screenSizeCompleter = Completer<void>(); |
| @@ -137,6 +140,7 @@ class _ScreenUtilInitState extends State<ScreenUtilInit> | @@ -137,6 +140,7 @@ class _ScreenUtilInitState extends State<ScreenUtilInit> | ||
| 137 | 140 | ||
| 138 | void _markNeedsBuildIfAllowed(Element el) { | 141 | void _markNeedsBuildIfAllowed(Element el) { |
| 139 | final widgetName = el.widget.runtimeType.toString(); | 142 | final widgetName = el.widget.runtimeType.toString(); |
| 143 | + if (_excludedWidgets.contains(widgetName)) return; | ||
| 140 | final allowed = widget is SU || | 144 | final allowed = widget is SU || |
| 141 | _canMarkedToBuild.contains(widgetName) || | 145 | _canMarkedToBuild.contains(widgetName) || |
| 142 | !(widgetName.startsWith('_') || flutterWidgets.contains(widgetName)); | 146 | !(widgetName.startsWith('_') || flutterWidgets.contains(widgetName)); |
-
Please register or login to post a comment