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
2022-05-01 04:34:58 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
d431baf8a38a66a4f0e0932038c474e4b521ca28
d431baf8
1 parent
1d2a41c5
Add missing code
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
15 deletions
lib/src/screenutil_init.dart
lib/src/screenutil_init.dart
View file @
d431baf
import
'package:flutter/widgets.dart'
;
import
'package:flutter/rendering.dart'
;
import
'screen_util.dart'
;
...
...
@@ -12,7 +11,11 @@ class ScreenUtilInit extends StatelessWidget {
this
.
splitScreenMode
=
false
,
this
.
minTextAdapt
=
false
,
Key
?
key
,
})
:
super
(
key:
key
);
})
:
assert
(
builder
!=
null
||
child
!=
null
,
'You must either pass builder or child or both'
,
),
super
(
key:
key
);
final
Widget
Function
(
Widget
?
child
)?
builder
;
final
Widget
?
child
;
...
...
@@ -23,28 +26,37 @@ class ScreenUtilInit extends StatelessWidget {
final
Size
designSize
;
@override
Widget
build
(
BuildContext
_
)
{
Widget
build
(
BuildContext
context
)
{
bool
firstFrameAllowed
=
false
;
RendererBinding
.
instance
!.
deferFirstFrame
();
final
binding
=
WidgetsFlutterBinding
.
ensureInitialized
();
binding
.
deferFirstFrame
();
final
rootMediaQueryData
=
(
context
.
getElementForInheritedWidgetOfExactType
<
MediaQuery
>()
?.
widget
as
MediaQuery
?)
?.
data
;
return
LayoutBuilder
(
builder:
(
context
,
constraints
)
{
builder:
(
_
,
constraints
)
{
if
(
constraints
.
biggest
==
Size
.
zero
)
return
const
SizedBox
.
shrink
();
ScreenUtil
.
init
(
null
,
deviceSize:
constraints
.
biggest
,
designSize:
designSize
,
splitScreenMode:
splitScreenMode
,
minTextAdapt:
minTextAdapt
,
);
if
(!
firstFrameAllowed
)
{
RendererBinding
.
instance
!
.
allowFirstFrame
();
binding
.
allowFirstFrame
();
firstFrameAllowed
=
true
;
}
return
builder
?.
call
(
child
)
??
child
!;
return
MediaQuery
(
data:
rootMediaQueryData
??
MediaQueryData
.
fromWindow
(
binding
.
window
),
child:
Builder
(
builder:
(
_context
)
{
ScreenUtil
.
init
(
_context
,
designSize:
designSize
,
splitScreenMode:
splitScreenMode
,
minTextAdapt:
minTextAdapt
,
);
return
builder
?.
call
(
child
)
??
child
!;
}),
);
},
);
}
...
...
Please
register
or
login
to post a comment