flutter - 如何在颤动中动态更改填充或边距
问题描述
要动态更改我使用的高度和宽度:
final screenSize = MediaQuery.of(context).size;
Container(
height: screenSize.height*0.45,
width: screenSize.width*0.45,
),
),
我的问题是如何动态更改填充和边距,以便布局在不同尺寸的屏幕上看起来相同,或者我也应该使用带有填充和边距的 screenSize?这就是我现在使用它的方式
padding: const EdgeInsets.only(top: 10.0, left: 10),
解决方案
您现在正在做的是距离屏幕顶部 10 个像素和距离屏幕左侧 10 个像素的填充。这样容器在不同的屏幕尺寸上可能会有更大或更小的形状。您可以通过使用 screenSize 值和媒体查询来动态执行此操作,以便根据屏幕大小设置填充:
padding: EdgeInsets.only(top: screenSize.height*0.1, left: screenSize.width*0.1),
上面代码的结果将是从顶部到屏幕高度的 10% 和从左侧到屏幕宽度的 10% 的填充。这就是您可以动态设置填充的方式。const
(另外请注意,如果您使用 mediaQuery 值,则不能使用关键字,因为该值在编译时不可用。
看看这篇文章。
推荐阅读
- flutter - 为什么 BuildContext 仅在 StatelessWidget.build 中可用,使用它的好方法是什么?
- javascript - D3 Scatterplot v6 无法正确绘图
- javascript - canvasjs.min.js:545 未捕获类型错误:无法读取绘图 CANVASJS 上未定义的属性“可见”
- html - CSS:倾斜和旋转问题
- asp.net-core - 在 Web API Core 3.1 中实现刷新令牌
- javascript - React 不会在初始加载时将数据加载到组件中
- node.js - 使用strapi和mongo创建项目时出错
- kubernetes - 入口控制器多个主机
- node.js - MongoDB对象属性检查嵌套数组中是否存在具有特定值的$
- python - 如果python中的特定字符串不同,是否有复制一行的方法?