LiZhuoyuan

3.1.0

fix #153 #154
  1 +{
  2 + "is-bot": true,
  3 + "redisplay-welcome-message": false
  4 +}
@@ -5,6 +5,11 @@ @@ -5,6 +5,11 @@
5 * @LastEditTime: 2020年6月20日 11:20:02 5 * @LastEditTime: 2020年6月20日 11:20:02
6 * @Description: Update log 6 * @Description: Update log
7 --> 7 -->
  8 +
  9 +# 3.1.0
  10 +- Use the way back to v2 version
  11 +- Modify registration method
  12 +
8 # 3.0.2+1 13 # 3.0.2+1
9 - Guide users to use V2 version 14 - Guide users to use V2 version
10 15
1 -# Please use [v2](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/2.3.1),[v3](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/3.0.2) now has some bugs.  
2 -  
3 # flutter_screenutil 1 # flutter_screenutil
4 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dev/packages/flutter_screenutil) 2 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dev/packages/flutter_screenutil)
5 3
@@ -30,7 +28,7 @@ dependencies: @@ -30,7 +28,7 @@ dependencies:
30 flutter: 28 flutter:
31 sdk: flutter 29 sdk: flutter
32 # add flutter_screenutil 30 # add flutter_screenutil
33 - flutter_screenutil: ^2.3.1 31 + flutter_screenutil: ^3.1.0
34 ``` 32 ```
35 ### Add the following imports to your Dart code: 33 ### Add the following imports to your Dart code:
36 ``` 34 ```
@@ -59,13 +57,13 @@ void main() { @@ -59,13 +57,13 @@ void main() {
59 //fill in the screen size of the device in the design 57 //fill in the screen size of the device in the design
60 58
61 //default value : width : 1080px , height:1920px , allowFontScaling:false 59 //default value : width : 1080px , height:1920px , allowFontScaling:false
62 -ScreenUtil.init(); 60 +ScreenUtil.init(context);
63 61
64 //If the design is based on the size of the iPhone6 ​​(iPhone6 ​​750*1334) 62 //If the design is based on the size of the iPhone6 ​​(iPhone6 ​​750*1334)
65 -ScreenUtil.init(designSize: Size(750, 1334)); 63 +ScreenUtil.init(context, designSize: Size(750, 1334));
66 64
67 //If you want to set the font size is scaled according to the system's "font size" assist option 65 //If you want to set the font size is scaled according to the system's "font size" assist option
68 -ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: true); 66 +ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: true);
69 67
70 ``` 68 ```
71 69
1 -# 请使用[v2](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/2.3.1),[v3](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/3.0.2)现在有一些bug  
2 -  
3 # flutter_ScreenUtil 1 # flutter_ScreenUtil
4 2
5 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dartlang.org/packages/flutter_screenutil) 3 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dartlang.org/packages/flutter_screenutil)
@@ -35,7 +33,7 @@ dependencies: @@ -35,7 +33,7 @@ dependencies:
35 flutter: 33 flutter:
36 sdk: flutter 34 sdk: flutter
37 # 添加依赖 35 # 添加依赖
38 - flutter_screenutil: ^2.3.1 36 + flutter_screenutil: ^3.1.0
39 ``` 37 ```
40 ### 在每个使用的地方导入包: 38 ### 在每个使用的地方导入包:
41 ``` 39 ```
@@ -64,13 +62,13 @@ void main() { @@ -64,13 +62,13 @@ void main() {
64 } 62 }
65 63
66 //默认 width : 1080px , height:1920px , allowFontScaling:false 64 //默认 width : 1080px , height:1920px , allowFontScaling:false
67 -ScreenUtil.init(); 65 +ScreenUtil.init(context);
68 66
69 //假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) 67 //假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334)
70 -ScreenUtil.init(designSize: Size(750, 1334)); 68 +ScreenUtil.init(context, designSize: Size(750, 1334));
71 69
72 //设置字体大小根据系统的“字体大小”辅助选项来进行缩放,默认为false 70 //设置字体大小根据系统的“字体大小”辅助选项来进行缩放,默认为false
73 -ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: true); 71 +ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: true);
74 72
75 ``` 73 ```
76 74
@@ -182,12 +180,10 @@ Column( @@ -182,12 +180,10 @@ Column(
182 ``` 180 ```
183 181
184 ```dart 182 ```dart
185 -void main() {  
186 - WidgetsFlutterBinding.ensureInitialized();  
187 - //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334)  
188 - ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: false);  
189 - runApp(MyApp());  
190 -} 183 +import 'package:flutter/material.dart';
  184 +import 'package:flutter_screenutil/flutter_screenutil.dart';
  185 +
  186 +void main() => runApp(MyApp());
191 187
192 class MyApp extends StatelessWidget { 188 class MyApp extends StatelessWidget {
193 @override 189 @override
@@ -198,11 +194,20 @@ class MyApp extends StatelessWidget { @@ -198,11 +194,20 @@ class MyApp extends StatelessWidget {
198 theme: ThemeData( 194 theme: ThemeData(
199 primarySwatch: Colors.blue, 195 primarySwatch: Colors.blue,
200 ), 196 ),
201 - home: ExampleWidget(title: 'FlutterScreenUtil示例'), 197 + home: MyHomePage(),
202 ); 198 );
203 } 199 }
204 } 200 }
205 201
  202 +class MyHomePage extends StatelessWidget {
  203 + @override
  204 + Widget build(BuildContext context) {
  205 + //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334)
  206 + ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);
  207 + return ExampleWidget(title: 'FlutterScreenUtil 示例');
  208 + }
  209 +}
  210 +
206 class ExampleWidget extends StatefulWidget { 211 class ExampleWidget extends StatefulWidget {
207 const ExampleWidget({Key key, this.title}) : super(key: key); 212 const ExampleWidget({Key key, this.title}) : super(key: key);
208 213
@@ -234,8 +239,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -234,8 +239,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
234 child: Text( 239 child: Text(
235 '我的宽度:${0.5.wp}dp \n' 240 '我的宽度:${0.5.wp}dp \n'
236 '我的高度:${ScreenUtil().setHeight(200)}dp', 241 '我的高度:${ScreenUtil().setHeight(200)}dp',
237 - style: TextStyle(  
238 - color: Colors.white, fontSize: ScreenUtil().setSp(24)), 242 + style: TextStyle(color: Colors.white, fontSize: ScreenUtil().setSp(24)),
239 ), 243 ),
240 ), 244 ),
241 Container( 245 Container(
@@ -246,9 +250,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -246,9 +250,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
246 child: Text( 250 child: Text(
247 '我的宽度:${375.w}dp \n' 251 '我的宽度:${375.w}dp \n'
248 '我的高度:${200.h}dp', 252 '我的高度:${200.h}dp',
249 - style: TextStyle(  
250 - color: Colors.white,  
251 - fontSize: ScreenUtil().setSp(24))), 253 + style: TextStyle(color: Colors.white, fontSize: ScreenUtil().setSp(24))),
252 ), 254 ),
253 ], 255 ],
254 ), 256 ),
@@ -276,11 +278,17 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -276,11 +278,17 @@ class _ExampleWidgetState extends State<ExampleWidget> {
276 children: <Widget>[ 278 children: <Widget>[
277 Text( 279 Text(
278 '我的文字大小在设计稿上是24px,不会随着系统的文字缩放比例变化', 280 '我的文字大小在设计稿上是24px,不会随着系统的文字缩放比例变化',
279 - style: ts.t2, 281 + style: TextStyle(
  282 + color: Colors.black,
  283 + fontSize: 24.sp,
  284 + ),
280 ), 285 ),
281 Text( 286 Text(
282 '我的文字大小在设计稿上是24px,会随着系统的文字缩放比例变化', 287 '我的文字大小在设计稿上是24px,会随着系统的文字缩放比例变化',
283 - style: ts.t1, 288 + style: TextStyle(
  289 + color: Colors.black,
  290 + fontSize: 24.ssp,
  291 + ),
284 ), 292 ),
285 ], 293 ],
286 ) 294 )
@@ -291,7 +299,8 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -291,7 +299,8 @@ class _ExampleWidgetState extends State<ExampleWidget> {
291 child: Icon(Icons.title), 299 child: Icon(Icons.title),
292 onPressed: () { 300 onPressed: () {
293 ScreenUtil.init( 301 ScreenUtil.init(
294 - designSize: Size(1500, 1334), 302 + context,
  303 + designSize: Size(750, 1334),
295 allowFontScaling: false, 304 allowFontScaling: false,
296 ); 305 );
297 setState(() {}); 306 setState(() {});
1 -# Please use [v2](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/2.3.1),[v3](https://pub.flutter-io.cn/packages/flutter_screenutil/versions/3.0.2) now has some bugs.  
2 -  
3 # flutter_screenutil 1 # flutter_screenutil
4 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dartlang.org/packages/flutter_screenutil) 2 [![pub package](https://img.shields.io/pub/v/flutter_screenutil.svg)](https://pub.dartlang.org/packages/flutter_screenutil)
5 3
@@ -30,7 +28,7 @@ dependencies: @@ -30,7 +28,7 @@ dependencies:
30 flutter: 28 flutter:
31 sdk: flutter 29 sdk: flutter
32 # add flutter_screenutil 30 # add flutter_screenutil
33 - flutter_screenutil: ^2.3.1 31 + flutter_screenutil: ^3.1.0
34 ``` 32 ```
35 33
36 ### Adicione o seguinte import em seu código Dart: 34 ### Adicione o seguinte import em seu código Dart:
@@ -60,13 +58,13 @@ void main() { @@ -60,13 +58,13 @@ void main() {
60 } 58 }
61 59
62 //Valor padrão: width : 1080px , height:1920px , allowFontScaling:false 60 //Valor padrão: width : 1080px , height:1920px , allowFontScaling:false
63 -ScreenUtil.init(); 61 +ScreenUtil.init(context);
64 62
65 //Se o design é baseado no iPhone6 ​​(iPhone6 ​​750*1334) 63 //Se o design é baseado no iPhone6 ​​(iPhone6 ​​750*1334)
66 -ScreenUtil.init(designSize: Size(750, 1334)); 64 +ScreenUtil.init(context, designSize: Size(750, 1334));
67 65
68 //Se você quer definir que o tamanho da fonte seja ajustado de acordo com a opção "tamanho da fonte" na acessibilidade do sistema 66 //Se você quer definir que o tamanho da fonte seja ajustado de acordo com a opção "tamanho da fonte" na acessibilidade do sistema
69 -ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: true); 67 +ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: true);
70 68
71 ``` 69 ```
72 70
@@ -3,14 +3,7 @@ import 'dart:ui'; @@ -3,14 +3,7 @@ import 'dart:ui';
3 import 'package:flutter/material.dart'; 3 import 'package:flutter/material.dart';
4 import 'package:flutter_screenutil/flutter_screenutil.dart'; 4 import 'package:flutter_screenutil/flutter_screenutil.dart';
5 5
6 -import 'text_style.dart';  
7 -  
8 -void main() {  
9 - WidgetsFlutterBinding.ensureInitialized();  
10 - //Set the fit size (fill in the screen size of the device in the design) If the design is based on the size of the iPhone6 ​​(iPhone6 ​​750*1334)  
11 - ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: false);  
12 - runApp(MyApp());  
13 -} 6 +void main() => runApp(MyApp());
14 7
15 class MyApp extends StatelessWidget { 8 class MyApp extends StatelessWidget {
16 @override 9 @override
@@ -21,11 +14,20 @@ class MyApp extends StatelessWidget { @@ -21,11 +14,20 @@ class MyApp extends StatelessWidget {
21 theme: ThemeData( 14 theme: ThemeData(
22 primarySwatch: Colors.blue, 15 primarySwatch: Colors.blue,
23 ), 16 ),
24 - home: ExampleWidget(title: 'FlutterScreenUtil Demo'), 17 + home: MyHomePage(),
25 ); 18 );
26 } 19 }
27 } 20 }
28 21
  22 +class MyHomePage extends StatelessWidget {
  23 + @override
  24 + Widget build(BuildContext context) {
  25 + //Set the fit size (fill in the screen size of the device in the design) If the design is based on the size of the iPhone6 ​​(iPhone6 ​​750*1334)
  26 + ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);
  27 + return ExampleWidget(title: 'FlutterScreenUtil Demo');
  28 + }
  29 +}
  30 +
29 class ExampleWidget extends StatefulWidget { 31 class ExampleWidget extends StatefulWidget {
30 const ExampleWidget({Key key, this.title}) : super(key: key); 32 const ExampleWidget({Key key, this.title}) : super(key: key);
31 33
@@ -38,6 +40,9 @@ class ExampleWidget extends StatefulWidget { @@ -38,6 +40,9 @@ class ExampleWidget extends StatefulWidget {
38 class _ExampleWidgetState extends State<ExampleWidget> { 40 class _ExampleWidgetState extends State<ExampleWidget> {
39 @override 41 @override
40 Widget build(BuildContext context) { 42 Widget build(BuildContext context) {
  43 + //Set the fit size (fill in the screen size of the device in the design) If the design is based on the size of the iPhone6 ​​(iPhone6 ​​750*1334)
  44 + ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);
  45 +
41 printScreenInformation(); 46 printScreenInformation();
42 return Scaffold( 47 return Scaffold(
43 appBar: AppBar( 48 appBar: AppBar(
@@ -112,7 +117,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -112,7 +117,10 @@ class _ExampleWidgetState extends State<ExampleWidget> {
112 ), 117 ),
113 Text( 118 Text(
114 'My font size is 24px on the design draft and will change with the system.', 119 'My font size is 24px on the design draft and will change with the system.',
115 - style: ts.t1, 120 + style: TextStyle(
  121 + color: Colors.black,
  122 + fontSize: 24.ssp,
  123 + ),
116 ), 124 ),
117 ], 125 ],
118 ) 126 )
@@ -122,10 +130,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -122,10 +130,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
122 floatingActionButton: FloatingActionButton( 130 floatingActionButton: FloatingActionButton(
123 child: Icon(Icons.title), 131 child: Icon(Icons.title),
124 onPressed: () { 132 onPressed: () {
125 - ScreenUtil.init(  
126 - designSize: Size(750, 1334),  
127 - allowFontScaling: false,  
128 - ); 133 + ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);
129 setState(() {}); 134 setState(() {});
130 }, 135 },
131 ), 136 ),
@@ -151,4 +156,3 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -151,4 +156,3 @@ class _ExampleWidgetState extends State<ExampleWidget> {
151 print('0.5 times the screen height:${0.5.hp}'); 156 print('0.5 times the screen height:${0.5.hp}');
152 } 157 }
153 } 158 }
154 -  
1 import 'package:flutter/material.dart'; 1 import 'package:flutter/material.dart';
2 import 'package:flutter_screenutil/flutter_screenutil.dart'; 2 import 'package:flutter_screenutil/flutter_screenutil.dart';
3 3
4 -import 'text_style.dart';  
5 -  
6 -void main() {  
7 - WidgetsFlutterBinding.ensureInitialized();  
8 - //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334)  
9 - ScreenUtil.init(designSize: Size(750, 1334), allowFontScaling: false);  
10 - runApp(MyApp());  
11 -} 4 +void main() => runApp(MyApp());
12 5
13 class MyApp extends StatelessWidget { 6 class MyApp extends StatelessWidget {
14 @override 7 @override
@@ -19,11 +12,20 @@ class MyApp extends StatelessWidget { @@ -19,11 +12,20 @@ class MyApp extends StatelessWidget {
19 theme: ThemeData( 12 theme: ThemeData(
20 primarySwatch: Colors.blue, 13 primarySwatch: Colors.blue,
21 ), 14 ),
22 - home: ExampleWidget(title: 'FlutterScreenUtil示例'), 15 + home: MyHomePage(),
23 ); 16 );
24 } 17 }
25 } 18 }
26 19
  20 +class MyHomePage extends StatelessWidget {
  21 + @override
  22 + Widget build(BuildContext context) {
  23 + //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334)
  24 + ScreenUtil.init(context, designSize: Size(750, 1334), allowFontScaling: false);
  25 + return ExampleWidget(title: 'FlutterScreenUtil 示例');
  26 + }
  27 +}
  28 +
27 class ExampleWidget extends StatefulWidget { 29 class ExampleWidget extends StatefulWidget {
28 const ExampleWidget({Key key, this.title}) : super(key: key); 30 const ExampleWidget({Key key, this.title}) : super(key: key);
29 31
@@ -55,8 +57,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -55,8 +57,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
55 child: Text( 57 child: Text(
56 '我的宽度:${0.5.wp}dp \n' 58 '我的宽度:${0.5.wp}dp \n'
57 '我的高度:${ScreenUtil().setHeight(200)}dp', 59 '我的高度:${ScreenUtil().setHeight(200)}dp',
58 - style: TextStyle(  
59 - color: Colors.white, fontSize: ScreenUtil().setSp(24)), 60 + style: TextStyle(color: Colors.white, fontSize: ScreenUtil().setSp(24)),
60 ), 61 ),
61 ), 62 ),
62 Container( 63 Container(
@@ -67,9 +68,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -67,9 +68,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
67 child: Text( 68 child: Text(
68 '我的宽度:${375.w}dp \n' 69 '我的宽度:${375.w}dp \n'
69 '我的高度:${200.h}dp', 70 '我的高度:${200.h}dp',
70 - style: TextStyle(  
71 - color: Colors.white,  
72 - fontSize: ScreenUtil().setSp(24))), 71 + style: TextStyle(color: Colors.white, fontSize: ScreenUtil().setSp(24))),
73 ), 72 ),
74 ], 73 ],
75 ), 74 ),
@@ -97,11 +96,17 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -97,11 +96,17 @@ class _ExampleWidgetState extends State<ExampleWidget> {
97 children: <Widget>[ 96 children: <Widget>[
98 Text( 97 Text(
99 '我的文字大小在设计稿上是24px,不会随着系统的文字缩放比例变化', 98 '我的文字大小在设计稿上是24px,不会随着系统的文字缩放比例变化',
100 - style: ts.t2, 99 + style: TextStyle(
  100 + color: Colors.black,
  101 + fontSize: 24.sp,
  102 + ),
101 ), 103 ),
102 Text( 104 Text(
103 '我的文字大小在设计稿上是24px,会随着系统的文字缩放比例变化', 105 '我的文字大小在设计稿上是24px,会随着系统的文字缩放比例变化',
104 - style: ts.t1, 106 + style: TextStyle(
  107 + color: Colors.black,
  108 + fontSize: 24.ssp,
  109 + ),
105 ), 110 ),
106 ], 111 ],
107 ) 112 )
@@ -112,6 +117,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { @@ -112,6 +117,7 @@ class _ExampleWidgetState extends State<ExampleWidget> {
112 child: Icon(Icons.title), 117 child: Icon(Icons.title),
113 onPressed: () { 118 onPressed: () {
114 ScreenUtil.init( 119 ScreenUtil.init(
  120 + context,
115 designSize: Size(750, 1334), 121 designSize: Size(750, 1334),
116 allowFontScaling: false, 122 allowFontScaling: false,
117 ); 123 );
1 -import 'package:flutter/material.dart';  
2 -import 'package:flutter_screenutil/flutter_screenutil.dart';  
3 -  
4 -class TextStyles {  
5 - TextStyle t1 = TextStyle(fontSize: 24.ssp, color: Colors.black);  
6 - TextStyle t2 = TextStyle(fontSize: 24.sp, color: Colors.black);  
7 -}  
8 -  
9 -var ts = TextStyles();  
10 -  
11 -class TextStyle2 {  
12 - static TextStyle2 ts2;  
13 -  
14 - factory TextStyle2() {  
15 - if (ts2 == null) {  
16 - ts2 = TextStyle2();  
17 - }  
18 - return ts2;  
19 - }  
20 -  
21 - TextStyle t1 = TextStyle(fontSize: 24.ssp, color: Colors.black);  
22 - TextStyle t2 = TextStyle(fontSize: 24.sp, color: Colors.black);  
23 -}  
@@ -4,7 +4,6 @@ @@ -4,7 +4,6 @@
4 */ 4 */
5 5
6 import 'package:flutter/material.dart'; 6 import 'package:flutter/material.dart';
7 -import 'package:flutter/scheduler.dart';  
8 7
9 class ScreenUtil { 8 class ScreenUtil {
10 static ScreenUtil _instance; 9 static ScreenUtil _instance;
@@ -18,26 +17,14 @@ class ScreenUtil { @@ -18,26 +17,14 @@ class ScreenUtil {
18 /// allowFontScaling Specifies whether fonts should scale to respect Text Size accessibility settings. The default is false. 17 /// allowFontScaling Specifies whether fonts should scale to respect Text Size accessibility settings. The default is false.
19 bool allowFontScaling = false; 18 bool allowFontScaling = false;
20 19
21 - double _pixelRatio;  
22 - double _screenWidth;  
23 - double _screenHeight;  
24 - double _statusBarHeight;  
25 - double _bottomBarHeight;  
26 - double _textScaleFactor; 20 + static double _pixelRatio;
  21 + static double _screenWidth;
  22 + static double _screenHeight;
  23 + static double _statusBarHeight;
  24 + static double _bottomBarHeight;
  25 + static double _textScaleFactor;
27 26
28 - ScreenUtil._() {  
29 - final window = SchedulerBinding.instance?.window;  
30 - assert(  
31 - window != null,  
32 - '\nYou need to explicitly call the `WidgetsFlutterBinding.ensureInitialized()`, before initializing ScreenUtil.',  
33 - );  
34 - _pixelRatio = window.devicePixelRatio;  
35 - _screenWidth = window.physicalSize.width / _pixelRatio;  
36 - _screenHeight = window.physicalSize.height / _pixelRatio;  
37 - _statusBarHeight = window.padding.top / _pixelRatio;  
38 - _bottomBarHeight = window.padding.bottom / _pixelRatio;  
39 - _textScaleFactor = window.textScaleFactor;  
40 - } 27 + ScreenUtil._();
41 28
42 factory ScreenUtil() { 29 factory ScreenUtil() {
43 assert( 30 assert(
@@ -47,7 +34,8 @@ class ScreenUtil { @@ -47,7 +34,8 @@ class ScreenUtil {
47 return _instance; 34 return _instance;
48 } 35 }
49 36
50 - static void init({ 37 + static void init(
  38 + BuildContext context, {
51 Size designSize = defaultSize, 39 Size designSize = defaultSize,
52 bool allowFontScaling = false, 40 bool allowFontScaling = false,
53 }) { 41 }) {
@@ -55,6 +43,13 @@ class ScreenUtil { @@ -55,6 +43,13 @@ class ScreenUtil {
55 _instance 43 _instance
56 ..uiSize = designSize 44 ..uiSize = designSize
57 ..allowFontScaling = allowFontScaling; 45 ..allowFontScaling = allowFontScaling;
  46 + MediaQueryData mediaQuery = MediaQuery.of(context);
  47 + _pixelRatio = mediaQuery.devicePixelRatio;
  48 + _screenWidth = mediaQuery.size.width;
  49 + _screenHeight = mediaQuery.size.height;
  50 + _statusBarHeight = mediaQuery.padding.top;
  51 + _bottomBarHeight = mediaQuery.padding.bottom;
  52 + _textScaleFactor = mediaQuery.textScaleFactor;
58 } 53 }
59 54
60 /// 每个逻辑像素的字体像素数,字体的缩放比例 55 /// 每个逻辑像素的字体像素数,字体的缩放比例
1 name: flutter_screenutil 1 name: flutter_screenutil
2 description: A flutter plugin for adapting screen and font size.Guaranteed to look good on different models 2 description: A flutter plugin for adapting screen and font size.Guaranteed to look good on different models
3 -version: 3.0.2+1 3 +version: 3.1.0
4 homepage: https://github.com/OpenFlutter/flutter_screenutil/tree/beta 4 homepage: https://github.com/OpenFlutter/flutter_screenutil/tree/beta
5 5
6 environment: 6 environment: