Flutter 颤振指定宽度、高度、填充物、边距等百分比?
在颤振中是否有一种方法允许宽度、高度、填充、边距等以屏幕尺寸的百分比指定,而不是在每个小部件中写入计算Flutter 颤振指定宽度、高度、填充物、边距等百分比?,flutter,responsive,dimensions,Flutter,Responsive,Dimensions,在颤振中是否有一种方法允许宽度、高度、填充、边距等以屏幕尺寸的百分比指定,而不是在每个小部件中写入计算 为这件小事传递提供者或扩展一些基类是不对的。唯一已知的解决方案是使用MediaQuery。我实现了一个helper类,我只调用其方法: class SizeManager { var _context; double _screenHeight; double _screenWidth; SizeManager(this._context) { _screenHeig
为这件小事传递提供者或扩展一些基类是不对的。唯一已知的解决方案是使用
MediaQuery
。我实现了一个helper类,我只调用其方法:
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()
中,在返回之前,将其称为:
SizeManager sizeManager = new SizeManager(context);
无论何时您想要设置边距/填充/大小:
Container(
padding: EdgeInsets.symmetric(vertical: sizeManager.scaledHeight(2.5)), //Gives a 2.5 % height padding
),
因此,唯一可能的方法是,让所有小部件从某个SizeManager扩展,或者在每个小部件中创建SizeManager的实例?每次都要加计算吗?难道没有一个选项可以让flifter用百分比来处理我们的大小吗?哦,我为这些实用方法创建了一个不同的类,并在我需要的任何地方调用该类。只需在每个小部件的顶部创建一个SizeManager,并在build方法中初始化它。在那之后,它一次又一次地重复着同一件事。不,不幸的是,颤振没有一个基于百分比的概念,甚至从我所知道的角度来看,没有下降。你可以看看