【发布时间】:2020-05-13 07:40:58
【问题描述】:
flutter 中是否有一种方法允许以屏幕尺寸的百分比指定宽度、高度、填充、边距等,而不是在每个小部件中编写计算?
为这个琐碎的事情传递提供者或扩展一些基类是不对的。
【问题讨论】:
标签: flutter responsive dimensions
flutter 中是否有一种方法允许以屏幕尺寸的百分比指定宽度、高度、填充、边距等,而不是在每个小部件中编写计算?
为这个琐碎的事情传递提供者或扩展一些基类是不对的。
【问题讨论】:
标签: flutter responsive dimensions
唯一已知的解决方案是使用MediaQuery。我实现了一个助手类,我只是调用它的方法:
class SizeManager {
var _context;
double _screenHeight;
double _screenWidth;
SizeManager(this._context) {
_screenHeight = MediaQuery.of(_context).size.height;
_screenWidth = MediaQuery.of(_context).size.width;
}
double scaledHeight(double value) {
return value * _screenHeight / 100;
}
double scaledWidth(double value) {
return value * _screenWidth / 100;
}
}
在每个build() 中,就在return 之前,这样称呼它:
SizeManager sizeManager = new SizeManager(context);
无论何时你想设置边距/填充/大小:
Container(
padding: EdgeInsets.symmetric(vertical: sizeManager.scaledHeight(2.5)), //Gives a 2.5 % height padding
),
【讨论】: