提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
问题描述思路使用1.引入库2.设置宽高问题描述
在编写app的过程中,使用的是模拟器来进行开发,而在面对不同的手机时,需要根据手机的尺寸自动调整各组件等的大小。
提示:以下是本篇文章正文内容,下面案例可供参考
思路
实际是一个比较取巧的思路。
1、首先flutter是使用MediaQuery相关组件来获取当前设备信息的。我们所需要的参数如下:
先声明变量,类型为MediaQueryData。
再进行赋值。
2、以模拟器的参数为单位,作为常量放在分母,达到比例的效果。即 在模拟器中设置的组件宽度/模拟器宽度 = 在手机中设置的组件宽度(x) / 手机宽度。
代码如下(专门写一个工具类以后调用方便)
/./ sizefit.dartimport 'package:flutter/material.dart';class SizeFit{static MediaQueryData _mediaQueryData = MediaQueryData();static double screenWidth = 0;static double screenHeight = 0;static void initialize(BuildContext context){_mediaQueryData = MediaQuery.of(context);screenWidth = _mediaQueryData.size.width;screenHeight = _mediaQueryData.size.height;}static double setHeight(double size){double standardHeight = 683.4285714285714;return size *screenHeight / standardHeight;}static double setWidth(double size){double standardWidth = 411.42857142857144;return size * screenWidth / standardWidth;}}
使用
1.引入库
代码如下(示例):
import 'sizefit.dart';
2.设置宽高
代码如下(示例):
Container(width:SizeFit.setWidth(340))