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