Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
flutter_screenutil
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Mounir Bouaiche
2023-06-11 18:49:00 +0100
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6fed40a8036178b80409b99cd878ad4d35fbad5b
6fed40a8
1 parent
c09793d6
Update logic if allowing widget to being rebuilt
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
9 deletions
lib/src/screenutil_init.dart
lib/src/screenutil_init.dart
View file @
6fed40a
import
'dart:collection'
;
import
'package:flutter/widgets.dart'
;
import
'./_flutter_widgets.dart'
;
import
'screenutil_mixin.dart'
;
import
'screen_util.dart'
;
...
...
@@ -67,13 +70,16 @@ class ScreenUtilInit extends StatefulWidget {
class
_ScreenUtilInitState
extends
State
<
ScreenUtilInit
>
with
WidgetsBindingObserver
{
late
final
Iterable
<
String
>?
_canMarkedToBuild
;
final
_canMarkedToBuild
=
HashSet
<
String
>()
;
MediaQueryData
?
_mediaQueryData
;
final
WidgetsBinding
_binding
=
WidgetsBinding
.
instance
;
final
_binding
=
WidgetsBinding
.
instance
;
@override
void
initState
()
{
_canMarkedToBuild
=
widget
.
responsiveWidgets
;
if
(
widget
.
responsiveWidgets
!=
null
)
{
_canMarkedToBuild
.
addAll
(
widget
.
responsiveWidgets
!);
}
super
.
initState
();
_binding
.
addObserver
(
this
);
}
...
...
@@ -98,13 +104,12 @@ class _ScreenUtilInitState extends State<ScreenUtilInit>
}
void
_markNeedsBuildIfAllowed
(
Element
el
)
{
if
(
_canMarkedToBuild
!=
null
)
{
final
widget
=
el
.
widget
,
widgetName
=
el
.
widget
.
runtimeType
.
toString
();
if
(
widget
is
!
SU
&&
!
_canMarkedToBuild
!.
contains
(
widgetName
))
return
;
}
final
widgetName
=
el
.
widget
.
runtimeType
.
toString
();
final
allowed
=
widget
is
SU
||
_canMarkedToBuild
.
contains
(
widgetName
)
||
!(
widgetName
.
startsWith
(
'_'
)
||
flutterWidgets
.
contains
(
widgetName
));
el
.
markNeedsBuild
();
if
(
allowed
)
el
.
markNeedsBuild
();
}
void
_updateTree
(
Element
el
)
{
...
...
Please
register
or
login
to post a comment