Showing
10 changed files
with
91 additions
and
78 deletions
| @@ -2,10 +2,14 @@ | @@ -2,10 +2,14 @@ | ||
| 2 | * @Author: zhuoyuan93@gmail.com | 2 | * @Author: zhuoyuan93@gmail.com |
| 3 | * @Date: 2018-10-16 19:43:03 | 3 | * @Date: 2018-10-16 19:43:03 |
| 4 | * @LastEditors: zhuoyuan93@gmail.com | 4 | * @LastEditors: zhuoyuan93@gmail.com |
| 5 | - * @LastEditTime: 2020年1月14日 12:11:02 | 5 | + * @LastEditTime: 2020年6月20日 11:20:02 |
| 6 | * @Description: Update log | 6 | * @Description: Update log |
| 7 | --> | 7 | --> |
| 8 | 8 | ||
| 9 | +#2.0.0 | ||
| 10 | +- Use `MediaQueryData.fromWindow(window)` instead of `MediaQuery.of(context)`, no context parameter required | ||
| 11 | +- API changes, please note | ||
| 12 | + | ||
| 9 | #1.1.0 | 13 | #1.1.0 |
| 10 | - support ExtensionMethod Dart-SDK-2.6.0 | 14 | - support ExtensionMethod Dart-SDK-2.6.0 |
| 11 | - you can use 'width: 50.w' instead of 'width: ScreenUtil().setWidth(50)' | 15 | - you can use 'width: 50.w' instead of 'width: ScreenUtil().setWidth(50)' |
| @@ -18,12 +18,13 @@ github: https://github.com/OpenFlutter/flutter_screenutil | @@ -18,12 +18,13 @@ github: https://github.com/OpenFlutter/flutter_screenutil | ||
| 18 | 18 | ||
| 19 | ### Add dependency: | 19 | ### Add dependency: |
| 20 | Please check the latest version before installation. | 20 | Please check the latest version before installation. |
| 21 | +If there is any problem with the new version, please use the previous version | ||
| 21 | ``` | 22 | ``` |
| 22 | dependencies: | 23 | dependencies: |
| 23 | flutter: | 24 | flutter: |
| 24 | sdk: flutter | 25 | sdk: flutter |
| 25 | # add flutter_screenutil | 26 | # add flutter_screenutil |
| 26 | - flutter_screenutil: ^1.0.2 | 27 | + flutter_screenutil: ^2.0.0 |
| 27 | ``` | 28 | ``` |
| 28 | 29 | ||
| 29 | ### Add the following imports to your Dart code: | 30 | ### Add the following imports to your Dart code: |
| @@ -48,13 +49,16 @@ Be sure to set the page in the MaterialApp's home(ie the entry file, just set it | @@ -48,13 +49,16 @@ Be sure to set the page in the MaterialApp's home(ie the entry file, just set it | ||
| 48 | //fill in the screen size of the device in the design | 49 | //fill in the screen size of the device in the design |
| 49 | 50 | ||
| 50 | //default value : width : 1080px , height:1920px , allowFontScaling:false | 51 | //default value : width : 1080px , height:1920px , allowFontScaling:false |
| 51 | -ScreenUtil.init(context); | 52 | +ScreenUtil.init(context); //flutter_screenuitl < 1.2 |
| 53 | +ScreenUtil.init(); //flutter_screenuitl >= 1.2 | ||
| 52 | 54 | ||
| 53 | //If the design is based on the size of the iPhone6 (iPhone6 750*1334) | 55 | //If the design is based on the size of the iPhone6 (iPhone6 750*1334) |
| 54 | -ScreenUtil.init(context, width: 750, height: 1334); | 56 | +ScreenUtil.init(context, width: 750, height: 1334); //flutter_screenuitl < 1.2 |
| 57 | +ScreenUtil.init(width: 750, height: 1334); //flutter_screenuitl >= 1.2 | ||
| 55 | 58 | ||
| 56 | //If you want to set the font size is scaled according to the system's "font size" assist option | 59 | //If you want to set the font size is scaled according to the system's "font size" assist option |
| 57 | -ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); | 60 | +ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl < 1.2 |
| 61 | +ScreenUtil.init(width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl >= 1.2 | ||
| 58 | 62 | ||
| 59 | ``` | 63 | ``` |
| 60 | 64 | ||
| @@ -189,7 +193,7 @@ class _MyHomePageState extends State<MyHomePage> { | @@ -189,7 +193,7 @@ class _MyHomePageState extends State<MyHomePage> { | ||
| 189 | @override | 193 | @override |
| 190 | Widget build(BuildContext context) { | 194 | Widget build(BuildContext context) { |
| 191 | //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) | 195 | //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) |
| 192 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | 196 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); |
| 193 | 197 | ||
| 194 | return ExampleWidget(title: 'FlutterScreenUtil Demo'); | 198 | return ExampleWidget(title: 'FlutterScreenUtil Demo'); |
| 195 | } | 199 | } |
| @@ -244,10 +248,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -244,10 +248,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 244 | ), | 248 | ), |
| 245 | ], | 249 | ], |
| 246 | ), | 250 | ), |
| 247 | - Text('Device width:${ScreenUtil.screenWidth}px'), | ||
| 248 | - Text('Device height:${ScreenUtil.screenHeight}px'), | ||
| 249 | - Text('Device width:${ScreenUtil.screenWidthDp}dp'), | ||
| 250 | - Text('Device height:${ScreenUtil.screenHeightDp}dp'), | 251 | + Text('Device width:${ScreenUtil.screenWidth}dp'), |
| 252 | + Text('Device height:${ScreenUtil.screenHeight}dp'), | ||
| 253 | + Text('Device width:${ScreenUtil.screenWidthPx}px'), | ||
| 254 | + Text('Device height:${ScreenUtil.screenHeightPx}px'), | ||
| 251 | Text('Device pixel density:${ScreenUtil.pixelRatio}'), | 255 | Text('Device pixel density:${ScreenUtil.pixelRatio}'), |
| 252 | Text('Bottom safe zone distance:${ScreenUtil.bottomBarHeight}dp'), | 256 | Text('Bottom safe zone distance:${ScreenUtil.bottomBarHeight}dp'), |
| 253 | Text('Status bar height:${ScreenUtil.statusBarHeight}dp'), | 257 | Text('Status bar height:${ScreenUtil.statusBarHeight}dp'), |
| @@ -286,8 +290,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -286,8 +290,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 286 | floatingActionButton: FloatingActionButton( | 290 | floatingActionButton: FloatingActionButton( |
| 287 | child: Icon(Icons.title), | 291 | child: Icon(Icons.title), |
| 288 | onPressed: () { | 292 | onPressed: () { |
| 289 | - ScreenUtil.init(context, | ||
| 290 | - width: 1500, height: 1334, allowFontScaling: false); | 293 | + ScreenUtil.init(width: 1500, height: 1334, allowFontScaling: false); |
| 291 | setState(() {}); | 294 | setState(() {}); |
| 292 | }, | 295 | }, |
| 293 | ), | 296 | ), |
| @@ -302,7 +305,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -302,7 +305,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 302 | print( | 305 | print( |
| 303 | 'Bottom safe zone distance dp:${ScreenUtil.bottomBarHeight}'); //Bottom safe zone distance,suitable for buttons with full screen | 306 | 'Bottom safe zone distance dp:${ScreenUtil.bottomBarHeight}'); //Bottom safe zone distance,suitable for buttons with full screen |
| 304 | print( | 307 | print( |
| 305 | - 'Status bar height px:${ScreenUtil.statusBarHeight}dp'); //Status bar height , Notch will be higher Unit px | 308 | + 'Status bar height dp:${ScreenUtil.statusBarHeight}dp'); //Status bar height , Notch will be higher Unit dp |
| 306 | print( | 309 | print( |
| 307 | 'Ratio of actual width dp to design draft px:${ScreenUtil().scaleWidth}'); | 310 | 'Ratio of actual width dp to design draft px:${ScreenUtil().scaleWidth}'); |
| 308 | print( | 311 | print( |
| @@ -23,12 +23,13 @@ csdn博客工具介绍:https://blog.csdn.net/u011272795/article/details/82795477 | @@ -23,12 +23,13 @@ csdn博客工具介绍:https://blog.csdn.net/u011272795/article/details/82795477 | ||
| 23 | ### 安装依赖: | 23 | ### 安装依赖: |
| 24 | 24 | ||
| 25 | 安装之前请查看最新版本 | 25 | 安装之前请查看最新版本 |
| 26 | +新版本如有问题请使用上一版 | ||
| 26 | ``` | 27 | ``` |
| 27 | dependencies: | 28 | dependencies: |
| 28 | flutter: | 29 | flutter: |
| 29 | sdk: flutter | 30 | sdk: flutter |
| 30 | # 添加依赖 | 31 | # 添加依赖 |
| 31 | - flutter_screenutil: ^1.0.2 | 32 | + flutter_screenutil: ^2.0.0 |
| 32 | ``` | 33 | ``` |
| 33 | 34 | ||
| 34 | ### 在每个使用的地方导入包: | 35 | ### 在每个使用的地方导入包: |
| @@ -52,13 +53,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | @@ -52,13 +53,16 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 52 | //填入设计稿中设备的屏幕尺寸 | 53 | //填入设计稿中设备的屏幕尺寸 |
| 53 | 54 | ||
| 54 | //默认 width : 1080px , height:1920px , allowFontScaling:false | 55 | //默认 width : 1080px , height:1920px , allowFontScaling:false |
| 55 | -ScreenUtil.init(context); | 56 | +ScreenUtil.init(context); //flutter_screenuitl < 1.2 |
| 57 | +ScreenUtil.init(); //flutter_screenuitl >= 1.2 | ||
| 56 | 58 | ||
| 57 | //假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) | 59 | //假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) |
| 58 | -ScreenUtil.init(context, width: 750, height: 1334); | 60 | +ScreenUtil.init(context, width: 750, height: 1334); //flutter_screenuitl < 1.2 |
| 61 | +ScreenUtil.init(width: 750, height: 1334); //flutter_screenuitl >= 1.2 | ||
| 59 | 62 | ||
| 60 | //设置字体大小根据系统的“字体大小”辅助选项来进行缩放,默认为false | 63 | //设置字体大小根据系统的“字体大小”辅助选项来进行缩放,默认为false |
| 61 | -ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); | 64 | +ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl < 1.2 |
| 65 | +ScreenUtil.init(width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl >= 1.2 | ||
| 62 | 66 | ||
| 63 | ``` | 67 | ``` |
| 64 | 68 | ||
| @@ -198,9 +202,9 @@ class _MyHomePageState extends State<MyHomePage> { | @@ -198,9 +202,9 @@ class _MyHomePageState extends State<MyHomePage> { | ||
| 198 | @override | 202 | @override |
| 199 | Widget build(BuildContext context) { | 203 | Widget build(BuildContext context) { |
| 200 | //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) | 204 | //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) |
| 201 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | ||
| 202 | - ScreenUtil.init(context); | ||
| 203 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | 205 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); |
| 206 | + ScreenUtil.init(); | ||
| 207 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); | ||
| 204 | 208 | ||
| 205 | return ExampleWidget(title: 'FlutterScreenUtil示例'); | 209 | return ExampleWidget(title: 'FlutterScreenUtil示例'); |
| 206 | } | 210 | } |
| @@ -255,10 +259,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -255,10 +259,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 255 | ), | 259 | ), |
| 256 | ], | 260 | ], |
| 257 | ), | 261 | ), |
| 258 | - Text('设备宽度:${ScreenUtil.screenWidth}px'), | ||
| 259 | - Text('设备高度:${ScreenUtil.screenHeight}px'), | ||
| 260 | - Text('设备宽度:${ScreenUtil.screenWidthDp}dp'), | ||
| 261 | - Text('设备高度:${ScreenUtil.screenHeightDp}dp'), | 262 | + Text('设备宽度:${ScreenUtil.screenWidth}dp'), |
| 263 | + Text('设备高度:${ScreenUtil.screenHeight}dp'), | ||
| 264 | + Text('设备宽度:${ScreenUtil.screenWidthPx}px'), | ||
| 265 | + Text('设备高度:${ScreenUtil.screenHeightPx}px'), | ||
| 262 | Text('设备的像素密度:${ScreenUtil.pixelRatio}'), | 266 | Text('设备的像素密度:${ScreenUtil.pixelRatio}'), |
| 263 | Text('底部安全区距离:${ScreenUtil.bottomBarHeight}dp'), | 267 | Text('底部安全区距离:${ScreenUtil.bottomBarHeight}dp'), |
| 264 | Text('状态栏高度:${ScreenUtil.statusBarHeight}dp'), | 268 | Text('状态栏高度:${ScreenUtil.statusBarHeight}dp'), |
| @@ -295,8 +299,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -295,8 +299,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 295 | floatingActionButton: FloatingActionButton( | 299 | floatingActionButton: FloatingActionButton( |
| 296 | child: Icon(Icons.title), | 300 | child: Icon(Icons.title), |
| 297 | onPressed: () { | 301 | onPressed: () { |
| 298 | - ScreenUtil.init(context, | ||
| 299 | - width: 1500, height: 1334, allowFontScaling: false); | 302 | + ScreenUtil.init(width: 1500, height: 1334, allowFontScaling: false); |
| 300 | setState(() {}); | 303 | setState(() {}); |
| 301 | }, | 304 | }, |
| 302 | ), | 305 | ), |
| @@ -310,11 +313,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -310,11 +313,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 310 | print( | 313 | print( |
| 311 | '底部安全区距离:${ScreenUtil.bottomBarHeight}dp'); //Bottom safe zone distance,suitable for buttons with full screen | 314 | '底部安全区距离:${ScreenUtil.bottomBarHeight}dp'); //Bottom safe zone distance,suitable for buttons with full screen |
| 312 | print( | 315 | print( |
| 313 | - '状态栏高度:${ScreenUtil.statusBarHeight}dp'); //Status bar height , Notch will be higher Unit px | 316 | + '状态栏高度:${ScreenUtil.statusBarHeight}dp'); //状态栏高度 , 刘海屏会更高,单位dp |
| 314 | 317 | ||
| 315 | print('实际宽度的dp与设计稿px的比例:${ScreenUtil().scaleWidth}'); | 318 | print('实际宽度的dp与设计稿px的比例:${ScreenUtil().scaleWidth}'); |
| 316 | print('实际高度的dp与设计稿px的比例:${ScreenUtil().scaleHeight}'); | 319 | print('实际高度的dp与设计稿px的比例:${ScreenUtil().scaleHeight}'); |
| 317 | - | ||
| 318 | print( | 320 | print( |
| 319 | '宽度和字体相对于设计稿放大的比例:${ScreenUtil().scaleWidth * ScreenUtil.pixelRatio}'); | 321 | '宽度和字体相对于设计稿放大的比例:${ScreenUtil().scaleWidth * ScreenUtil.pixelRatio}'); |
| 320 | print('高度相对于设计稿放大的比例:${ScreenUtil().scaleHeight * ScreenUtil.pixelRatio}'); | 322 | print('高度相对于设计稿放大的比例:${ScreenUtil().scaleHeight * ScreenUtil.pixelRatio}'); |
| @@ -18,12 +18,13 @@ github: https://github.com/OpenFlutter/flutter_screenutil | @@ -18,12 +18,13 @@ github: https://github.com/OpenFlutter/flutter_screenutil | ||
| 18 | 18 | ||
| 19 | ### Adicionando a dependência: | 19 | ### Adicionando a dependência: |
| 20 | Por favor, verifique a última versão antes da instalação. | 20 | Por favor, verifique a última versão antes da instalação. |
| 21 | +Se houver algum problema com a nova versão, use a versão anterior | ||
| 21 | ``` | 22 | ``` |
| 22 | dependencies: | 23 | dependencies: |
| 23 | flutter: | 24 | flutter: |
| 24 | sdk: flutter | 25 | sdk: flutter |
| 25 | # add flutter_screenutil | 26 | # add flutter_screenutil |
| 26 | - flutter_screenutil: ^1.0.2 | 27 | + flutter_screenutil: ^2.0.0 |
| 27 | ``` | 28 | ``` |
| 28 | 29 | ||
| 29 | ### Adicione o seguinte import em seu código Dart: | 30 | ### Adicione o seguinte import em seu código Dart: |
| @@ -48,13 +49,16 @@ Certifique-se de definir as dimensões na paginal inicial do MaterialApp (ou sej | @@ -48,13 +49,16 @@ Certifique-se de definir as dimensões na paginal inicial do MaterialApp (ou sej | ||
| 48 | //Preencha o tamanho da tela do dispositivo no protótipo de design | 49 | //Preencha o tamanho da tela do dispositivo no protótipo de design |
| 49 | 50 | ||
| 50 | //Valor padrão: width : 1080px , height:1920px , allowFontScaling:false | 51 | //Valor padrão: width : 1080px , height:1920px , allowFontScaling:false |
| 51 | -ScreenUtil.init(context); | 52 | +ScreenUtil.init(context); //flutter_screenuitl < 1.2 |
| 53 | +ScreenUtil.init(); //flutter_screenuitl >= 1.2 | ||
| 52 | 54 | ||
| 53 | //Se o design é baseado no iPhone6 (iPhone6 750*1334) | 55 | //Se o design é baseado no iPhone6 (iPhone6 750*1334) |
| 54 | -ScreenUtil.init(context, width: 750, height: 1334); | 56 | +ScreenUtil.init(context, width: 750, height: 1334); //flutter_screenuitl < 1.2 |
| 57 | +ScreenUtil.init(width: 750, height: 1334); //flutter_screenuitl >= 1.2 | ||
| 55 | 58 | ||
| 56 | //Se você quer definir que o tamanho da fonte seja ajustado de acordo com a opção "tamanho da fonte" na acessibilidade do sistema | 59 | //Se você quer definir que o tamanho da fonte seja ajustado de acordo com a opção "tamanho da fonte" na acessibilidade do sistema |
| 57 | -ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); | 60 | +ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl < 1.2 |
| 61 | +ScreenUtil.init(width: 750, height: 1334, allowFontScaling: true); //flutter_screenuitl >= 1.2 | ||
| 58 | 62 | ||
| 59 | ``` | 63 | ``` |
| 60 | 64 | ||
| @@ -182,7 +186,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | @@ -182,7 +186,7 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 182 | @override | 186 | @override |
| 183 | Widget build(BuildContext context) { | 187 | Widget build(BuildContext context) { |
| 184 | ///Define o tamanho de ajuste (preenche o tamanho da tela do dispositivo no design). Se o design é baseado no tamanho do iPhone6 (iPhone6 750*1334) | 188 | ///Define o tamanho de ajuste (preenche o tamanho da tela do dispositivo no design). Se o design é baseado no tamanho do iPhone6 (iPhone6 750*1334) |
| 185 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | 189 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); |
| 186 | 190 | ||
| 187 | print('Largura do dispositivo:${ScreenUtil.screenWidth}'); //Largura do dispositivo | 191 | print('Largura do dispositivo:${ScreenUtil.screenWidth}'); //Largura do dispositivo |
| 188 | print('Altura do dispositivo:${ScreenUtil.screenHeight}'); //Altura do dispositivo | 192 | print('Altura do dispositivo:${ScreenUtil.screenHeight}'); //Altura do dispositivo |
| @@ -235,11 +239,11 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | @@ -235,11 +239,11 @@ import 'package:flutter_screenutil/flutter_screenutil.dart'; | ||
| 235 | ), | 239 | ), |
| 236 | ], | 240 | ], |
| 237 | ), | 241 | ), |
| 238 | - Text('Largura do dispositivo:${ScreenUtil.screenWidth}px'), | ||
| 239 | - Text('Altura do dispositivo:${ScreenUtil.screenHeight}px'), | 242 | + Text('Largura do dispositivo:${ScreenUtil.screenWidth}dp'), |
| 243 | + Text('Altura do dispositivo:${ScreenUtil.screenHeight}dp'), | ||
| 240 | Text('Densidade de pixels do dispositivo:${ScreenUtil.pixelRatio}'), | 244 | Text('Densidade de pixels do dispositivo:${ScreenUtil.pixelRatio}'), |
| 241 | - Text('Distância segura do rodapé:${ScreenUtil.bottomBarHeight}px'), | ||
| 242 | - Text('Altura da status bar:${ScreenUtil.statusBarHeight}px'), | 245 | + Text('Distância segura do rodapé:${ScreenUtil.bottomBarHeight}dp'), |
| 246 | + Text('Altura da status bar:${ScreenUtil.statusBarHeight}dp'), | ||
| 243 | Text( | 247 | Text( |
| 244 | 'Razão entre a largura atual e a largura do protótipo de design em pixels:${ScreenUtil().scaleWidth}', | 248 | 'Razão entre a largura atual e a largura do protótipo de design em pixels:${ScreenUtil().scaleWidth}', |
| 245 | textAlign: TextAlign.center, | 249 | textAlign: TextAlign.center, |
| @@ -2,6 +2,7 @@ buildscript { | @@ -2,6 +2,7 @@ buildscript { | ||
| 2 | repositories { | 2 | repositories { |
| 3 | google() | 3 | google() |
| 4 | jcenter() | 4 | jcenter() |
| 5 | + maven { url "http://download.flutter.io" } | ||
| 5 | } | 6 | } |
| 6 | 7 | ||
| 7 | dependencies { | 8 | dependencies { |
| @@ -13,6 +14,7 @@ allprojects { | @@ -13,6 +14,7 @@ allprojects { | ||
| 13 | repositories { | 14 | repositories { |
| 14 | google() | 15 | google() |
| 15 | jcenter() | 16 | jcenter() |
| 17 | + maven { url "http://download.flutter.io" } | ||
| 16 | } | 18 | } |
| 17 | } | 19 | } |
| 18 | 20 |
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | # This is a generated file; do not edit or check into version control. | 2 | # This is a generated file; do not edit or check into version control. |
| 3 | -export "FLUTTER_ROOT=D:\flutter" | ||
| 4 | -export "FLUTTER_APPLICATION_PATH=D:\Project\flutter_ScreenUtil\example" | 3 | +export "FLUTTER_ROOT=D:\Develop\flutter" |
| 4 | +export "FLUTTER_APPLICATION_PATH=D:\Develop\Project\flutter_screenutil\example" | ||
| 5 | export "FLUTTER_TARGET=lib\main.dart" | 5 | export "FLUTTER_TARGET=lib\main.dart" |
| 6 | export "FLUTTER_BUILD_DIR=build" | 6 | export "FLUTTER_BUILD_DIR=build" |
| 7 | export "SYMROOT=${SOURCE_ROOT}/../build\ios" | 7 | export "SYMROOT=${SOURCE_ROOT}/../build\ios" |
| 8 | -export "FLUTTER_FRAMEWORK_DIR=D:\flutter\bin\cache\artifacts\engine\ios" | 8 | +export "OTHER_LDFLAGS=$(inherited) -framework Flutter" |
| 9 | +export "FLUTTER_FRAMEWORK_DIR=D:\Develop\flutter\bin\cache\artifacts\engine\ios" | ||
| 9 | export "FLUTTER_BUILD_NAME=1.0.0" | 10 | export "FLUTTER_BUILD_NAME=1.0.0" |
| 10 | export "FLUTTER_BUILD_NUMBER=1" | 11 | export "FLUTTER_BUILD_NUMBER=1" |
| @@ -26,7 +26,7 @@ class _MyHomePageState extends State<MyHomePage> { | @@ -26,7 +26,7 @@ class _MyHomePageState extends State<MyHomePage> { | ||
| 26 | @override | 26 | @override |
| 27 | Widget build(BuildContext context) { | 27 | Widget build(BuildContext context) { |
| 28 | //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) | 28 | //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) |
| 29 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | 29 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); |
| 30 | 30 | ||
| 31 | return ExampleWidget(title: 'FlutterScreenUtil Demo'); | 31 | return ExampleWidget(title: 'FlutterScreenUtil Demo'); |
| 32 | } | 32 | } |
| @@ -81,10 +81,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -81,10 +81,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 81 | ), | 81 | ), |
| 82 | ], | 82 | ], |
| 83 | ), | 83 | ), |
| 84 | - Text('Device width:${ScreenUtil.screenWidth}px'), | ||
| 85 | - Text('Device height:${ScreenUtil.screenHeight}px'), | ||
| 86 | - Text('Device width:${ScreenUtil.screenWidthDp}dp'), | ||
| 87 | - Text('Device height:${ScreenUtil.screenHeightDp}dp'), | 84 | + Text('Device width:${ScreenUtil.screenWidthPx}px'), |
| 85 | + Text('Device height:${ScreenUtil.screenHeightPx}px'), | ||
| 86 | + Text('Device width:${ScreenUtil.screenWidth}dp'), | ||
| 87 | + Text('Device height:${ScreenUtil.screenHeight}dp'), | ||
| 88 | Text('Device pixel density:${ScreenUtil.pixelRatio}'), | 88 | Text('Device pixel density:${ScreenUtil.pixelRatio}'), |
| 89 | Text('Bottom safe zone distance:${ScreenUtil.bottomBarHeight}dp'), | 89 | Text('Bottom safe zone distance:${ScreenUtil.bottomBarHeight}dp'), |
| 90 | Text('Status bar height:${ScreenUtil.statusBarHeight}dp'), | 90 | Text('Status bar height:${ScreenUtil.statusBarHeight}dp'), |
| @@ -123,8 +123,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -123,8 +123,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 123 | floatingActionButton: FloatingActionButton( | 123 | floatingActionButton: FloatingActionButton( |
| 124 | child: Icon(Icons.title), | 124 | child: Icon(Icons.title), |
| 125 | onPressed: () { | 125 | onPressed: () { |
| 126 | - ScreenUtil.init(context, | ||
| 127 | - width: 1500, height: 1334, allowFontScaling: false); | 126 | + ScreenUtil.init(width: 1500, height: 1334, allowFontScaling: false); |
| 128 | setState(() {}); | 127 | setState(() {}); |
| 129 | }, | 128 | }, |
| 130 | ), | 129 | ), |
| @@ -132,8 +131,8 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -132,8 +131,8 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 132 | } | 131 | } |
| 133 | 132 | ||
| 134 | void printScreenInformation() { | 133 | void printScreenInformation() { |
| 135 | - print('Device width px:${ScreenUtil.screenWidth}'); //Device width | ||
| 136 | - print('Device height px:${ScreenUtil.screenHeight}'); //Device height | 134 | + print('Device width dp:${ScreenUtil.screenWidth}'); //Device width |
| 135 | + print('Device height dp:${ScreenUtil.screenHeight}'); //Device height | ||
| 137 | print( | 136 | print( |
| 138 | 'Device pixel density:${ScreenUtil.pixelRatio}'); //Device pixel density | 137 | 'Device pixel density:${ScreenUtil.pixelRatio}'); //Device pixel density |
| 139 | print( | 138 | print( |
| @@ -148,5 +147,6 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -148,5 +147,6 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 148 | 'The ratio of font and width to the size of the design:${ScreenUtil().scaleWidth * ScreenUtil.pixelRatio}'); | 147 | 'The ratio of font and width to the size of the design:${ScreenUtil().scaleWidth * ScreenUtil.pixelRatio}'); |
| 149 | print( | 148 | print( |
| 150 | 'The ratio of height width to the size of the design:${ScreenUtil().scaleHeight * ScreenUtil.pixelRatio}'); | 149 | 'The ratio of height width to the size of the design:${ScreenUtil().scaleHeight * ScreenUtil.pixelRatio}'); |
| 150 | + print('System font scaling:${ScreenUtil.textScaleFactor}'); | ||
| 151 | } | 151 | } |
| 152 | } | 152 | } |
| @@ -31,7 +31,7 @@ class _MyHomePageState extends State<MyHomePage> { | @@ -31,7 +31,7 @@ class _MyHomePageState extends State<MyHomePage> { | ||
| 31 | Widget build(BuildContext context) { | 31 | Widget build(BuildContext context) { |
| 32 | //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) | 32 | //设置适配尺寸 (填入设计稿中设备的屏幕尺寸) 此处假如设计稿是按iPhone6的尺寸设计的(iPhone6 750*1334) |
| 33 | 33 | ||
| 34 | - ScreenUtil.init(context, width: 750, height: 1334, allowFontScaling: false); | 34 | + ScreenUtil.init(width: 750, height: 1334, allowFontScaling: false); |
| 35 | 35 | ||
| 36 | return ExampleWidget(title: 'FlutterScreenUtil示例'); | 36 | return ExampleWidget(title: 'FlutterScreenUtil示例'); |
| 37 | } | 37 | } |
| @@ -86,10 +86,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -86,10 +86,10 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 86 | ), | 86 | ), |
| 87 | ], | 87 | ], |
| 88 | ), | 88 | ), |
| 89 | - Text('设备宽度:${ScreenUtil.screenWidth}px'), | ||
| 90 | - Text('设备高度:${ScreenUtil.screenHeight}px'), | ||
| 91 | - Text('设备宽度:${ScreenUtil.screenWidthDp}dp'), | ||
| 92 | - Text('设备高度:${ScreenUtil.screenHeightDp}dp'), | 89 | + Text('设备宽度:${ScreenUtil.screenWidthPx}px'), |
| 90 | + Text('设备高度:${ScreenUtil.screenHeightPx}px'), | ||
| 91 | + Text('设备宽度:${ScreenUtil.screenWidth}dp'), | ||
| 92 | + Text('设备高度:${ScreenUtil.screenHeight}dp'), | ||
| 93 | Text('设备的像素密度:${ScreenUtil.pixelRatio}'), | 93 | Text('设备的像素密度:${ScreenUtil.pixelRatio}'), |
| 94 | Text('底部安全区距离:${ScreenUtil.bottomBarHeight}dp'), | 94 | Text('底部安全区距离:${ScreenUtil.bottomBarHeight}dp'), |
| 95 | Text('状态栏高度:${ScreenUtil.statusBarHeight}dp'), | 95 | Text('状态栏高度:${ScreenUtil.statusBarHeight}dp'), |
| @@ -126,8 +126,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | @@ -126,8 +126,7 @@ class _ExampleWidgetState extends State<ExampleWidget> { | ||
| 126 | floatingActionButton: FloatingActionButton( | 126 | floatingActionButton: FloatingActionButton( |
| 127 | child: Icon(Icons.title), | 127 | child: Icon(Icons.title), |
| 128 | onPressed: () { | 128 | onPressed: () { |
| 129 | - ScreenUtil.init(context, | ||
| 130 | - width: 1500, height: 1334, allowFontScaling: false); | 129 | + ScreenUtil.init(width: 1500, height: 1334, allowFontScaling: false); |
| 131 | setState(() {}); | 130 | setState(() {}); |
| 132 | }, | 131 | }, |
| 133 | ), | 132 | ), |
| @@ -3,7 +3,7 @@ | @@ -3,7 +3,7 @@ | ||
| 3 | * email: zhuoyuan93@gmail.com | 3 | * email: zhuoyuan93@gmail.com |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | -import 'package:flutter/material.dart'; | 6 | +import 'dart:ui'; |
| 7 | 7 | ||
| 8 | class ScreenUtil { | 8 | class ScreenUtil { |
| 9 | static ScreenUtil _instance; | 9 | static ScreenUtil _instance; |
| @@ -19,7 +19,6 @@ class ScreenUtil { | @@ -19,7 +19,6 @@ class ScreenUtil { | ||
| 19 | /// allowFontScaling Specifies whether fonts should scale to respect Text Size accessibility settings. The default is false. | 19 | /// allowFontScaling Specifies whether fonts should scale to respect Text Size accessibility settings. The default is false. |
| 20 | bool allowFontScaling; | 20 | bool allowFontScaling; |
| 21 | 21 | ||
| 22 | - static MediaQueryData _mediaQueryData; | ||
| 23 | static double _screenWidth; | 22 | static double _screenWidth; |
| 24 | static double _screenHeight; | 23 | static double _screenHeight; |
| 25 | static double _pixelRatio; | 24 | static double _pixelRatio; |
| @@ -33,7 +32,7 @@ class ScreenUtil { | @@ -33,7 +32,7 @@ class ScreenUtil { | ||
| 33 | return _instance; | 32 | return _instance; |
| 34 | } | 33 | } |
| 35 | 34 | ||
| 36 | - static void init(BuildContext context, | 35 | + static void init( |
| 37 | {num width = defaultWidth, | 36 | {num width = defaultWidth, |
| 38 | num height = defaultHeight, | 37 | num height = defaultHeight, |
| 39 | bool allowFontScaling = false}) { | 38 | bool allowFontScaling = false}) { |
| @@ -43,19 +42,14 @@ class ScreenUtil { | @@ -43,19 +42,14 @@ class ScreenUtil { | ||
| 43 | _instance.uiWidthPx = width; | 42 | _instance.uiWidthPx = width; |
| 44 | _instance.uiHeightPx = height; | 43 | _instance.uiHeightPx = height; |
| 45 | _instance.allowFontScaling = allowFontScaling; | 44 | _instance.allowFontScaling = allowFontScaling; |
| 46 | - | ||
| 47 | - MediaQueryData mediaQuery = MediaQuery.of(context); | ||
| 48 | - _mediaQueryData = mediaQuery; | ||
| 49 | - _pixelRatio = mediaQuery.devicePixelRatio; | ||
| 50 | - _screenWidth = mediaQuery.size.width; | ||
| 51 | - _screenHeight = mediaQuery.size.height; | ||
| 52 | - _statusBarHeight = mediaQuery.padding.top; | ||
| 53 | - _bottomBarHeight = _mediaQueryData.padding.bottom; | ||
| 54 | - _textScaleFactor = mediaQuery.textScaleFactor; | 45 | + _pixelRatio = window.devicePixelRatio; |
| 46 | + _screenWidth = window.physicalSize.width; | ||
| 47 | + _screenHeight = window.physicalSize.height; | ||
| 48 | + _statusBarHeight = window.padding.top; | ||
| 49 | + _bottomBarHeight = window.padding.bottom; | ||
| 50 | + _textScaleFactor = window.textScaleFactor; | ||
| 55 | } | 51 | } |
| 56 | 52 | ||
| 57 | - static MediaQueryData get mediaQueryData => _mediaQueryData; | ||
| 58 | - | ||
| 59 | /// 每个逻辑像素的字体像素数,字体的缩放比例 | 53 | /// 每个逻辑像素的字体像素数,字体的缩放比例 |
| 60 | /// The number of font pixels for each logical pixel. | 54 | /// The number of font pixels for each logical pixel. |
| 61 | static double get textScaleFactor => _textScaleFactor; | 55 | static double get textScaleFactor => _textScaleFactor; |
| @@ -66,23 +60,27 @@ class ScreenUtil { | @@ -66,23 +60,27 @@ class ScreenUtil { | ||
| 66 | 60 | ||
| 67 | /// 当前设备宽度 dp | 61 | /// 当前设备宽度 dp |
| 68 | /// The horizontal extent of this size. | 62 | /// The horizontal extent of this size. |
| 69 | - static double get screenWidthDp => _screenWidth; | 63 | + static double get screenWidth => _screenWidth / _pixelRatio; |
| 70 | 64 | ||
| 71 | ///当前设备高度 dp | 65 | ///当前设备高度 dp |
| 72 | ///The vertical extent of this size. dp | 66 | ///The vertical extent of this size. dp |
| 73 | - static double get screenHeightDp => _screenHeight; | 67 | + static double get screenHeight => _screenHeight / _pixelRatio; |
| 74 | 68 | ||
| 75 | /// 当前设备宽度 px | 69 | /// 当前设备宽度 px |
| 76 | /// The vertical extent of this size. px | 70 | /// The vertical extent of this size. px |
| 77 | - static double get screenWidth => _screenWidth * _pixelRatio; | 71 | + static double get screenWidthPx => _screenWidth; |
| 78 | 72 | ||
| 79 | /// 当前设备高度 px | 73 | /// 当前设备高度 px |
| 80 | /// The vertical extent of this size. px | 74 | /// The vertical extent of this size. px |
| 81 | - static double get screenHeight => _screenHeight * _pixelRatio; | 75 | + static double get screenHeightPx => _screenHeight; |
| 76 | + | ||
| 77 | + /// 状态栏高度 dp 刘海屏会更高 | ||
| 78 | + /// The offset from the top | ||
| 79 | + static double get statusBarHeight => _statusBarHeight / _pixelRatio; | ||
| 82 | 80 | ||
| 83 | /// 状态栏高度 dp 刘海屏会更高 | 81 | /// 状态栏高度 dp 刘海屏会更高 |
| 84 | /// The offset from the top | 82 | /// The offset from the top |
| 85 | - static double get statusBarHeight => _statusBarHeight; | 83 | + static double get statusBarHeightPx => _statusBarHeight; |
| 86 | 84 | ||
| 87 | /// 底部安全区距离 dp | 85 | /// 底部安全区距离 dp |
| 88 | /// The offset from the bottom. | 86 | /// The offset from the bottom. |
| @@ -90,9 +88,9 @@ class ScreenUtil { | @@ -90,9 +88,9 @@ class ScreenUtil { | ||
| 90 | 88 | ||
| 91 | /// 实际的dp与UI设计px的比例 | 89 | /// 实际的dp与UI设计px的比例 |
| 92 | /// The ratio of the actual dp to the design draft px | 90 | /// The ratio of the actual dp to the design draft px |
| 93 | - double get scaleWidth => _screenWidth / uiWidthPx; | 91 | + double get scaleWidth => screenWidth / uiWidthPx; |
| 94 | 92 | ||
| 95 | - double get scaleHeight => _screenHeight / uiHeightPx; | 93 | + double get scaleHeight => screenHeight / uiHeightPx; |
| 96 | 94 | ||
| 97 | double get scaleText => scaleWidth; | 95 | double get scaleText => scaleWidth; |
| 98 | 96 |
| 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: 1.1.0 | 3 | +version: 2.0.0 |
| 4 | homepage: https://github.com/OpenFlutter/flutter_screenutil | 4 | homepage: https://github.com/OpenFlutter/flutter_screenutil |
| 5 | 5 | ||
| 6 | environment: | 6 | environment: |
-
Please register or login to post a comment