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方法中初始化它。在那之后,它一次又一次地重复着同一件事。不,不幸的是,颤振没有一个基于百分比的概念,甚至从我所知道的角度来看,没有下降。你可以看看