响应式填充抖动

时间:2020-02-20 06:40:17

标签: flutter dart flutter-layout

我正在尝试将一定百分比的屏幕尺寸传递给padding小部件,但它表示该值应该是常数,而且当您只是键入数字时,它也会在不同的设备中显示不同的UI。 所以我们应该如何做响应填充。

double h = MediaQuery.of(context).size.height;

Padding(padding: const EdgeInsets.fromLTRB(h*0.2, 5.0, 50.0, 0.0),
        child:...)

1 个答案:

答案 0 :(得分:0)

从您的const中删除EdgeInsets关键字。 const关键字意味着Flutter事先知道特定窗口小部件将使用的值。显然,如果这些值取决于设备的高度,则Flutter在执行代码之前将无法知道它们。

此外,考虑使用LayoutBuilder而不是MediaQuery来获取可用的空间约束。以我的经验,通过获取对可用屏幕空间的引用而不是使用固定的设备尺寸,可以更轻松,更灵活地构建所需的响应式布局。