android - 如何添加根据屏幕保持平台响应的填充?
问题描述
媒体查询在这种情况下没有帮助,EdgeInsets.only()
或者可能是我不理解的情况。我使用了 padding: EdgeInsets.all(MediaQuery.of(context).size.width/10)
,但它在“仅”情况下没有帮助。
Padding(
padding: const EdgeInsets.only(top: 160, left: 90, bottom: 20),
child: Row(
children: <Widget>[
Image.asset(
'assets/logo.png',
height: 70,
width: 70,
),
Text(
' Whatsapp',
style: TextStyle(
fontSize: 26,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
],
),
),
解决方案
这是一个你可以使用的包
https://pub.dev/packages/flutter_screenutil
将依赖项添加到您的 pubspec.yaml 文件中:
flutter_screenutil: <latest version>
用屏幕高度和宽度在 build 方法中初始化包。您可以从 MediaQuery 获得。
final Size size = MediaQuery.of(context).size;
ScreenUtil.init(context,
width: size.width,
height: size.height,
allowFontScaling: false);
现在您可以继续将 .w 和 .h 附加到填充值。“.w”返回相对于屏幕宽度附加的值的一小部分。“.h” 做同样的事情,但屏幕的高度。
Padding(
padding: const EdgeInsets.only(top: 160.h, left: 90.w, bottom: 20.h),
child: Row(
children: <Widget>[
Image.asset(
'assets/logo.png',
height: 70,
width: 70,
),
Text(
' Whatsapp',
style: TextStyle(
fontSize: 26,
color: Colors.white,
fontWeight: FontWeight.bold,
),
),
],
),
),
推荐阅读
- java - 如何将 int 放入 HashMap jni?
- conditional-statements - 如何根据 OPL 中的其他决策变量将 0 和 1 分配给决策变量
- flutter - Flutter in_app_purchase queryPastPurchases() 在 iOS 上返回空列表
- c++ - C++ 测量显示字符串宽度(替代 c# TextRenderer.MeasureText)
- c# - 使用 DelegatingHandler 实现 HTTP 请求重试逻辑
- traefik - Traefik unabe to create none www to www redirect
- reactjs - 如何从解码的 jwt 中获取声明参数
- python - 为什么在 python 中使用 jupyter notebook?
- c# - uwp 我如何单击以获取画布的索引子项
- html - 不需要的滚动条右边距