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