Flutter 使用 Stack 或任何其他方法重叠具有动态高度的多个小部件

Posted

技术标签:

【中文标题】Flutter 使用 Stack 或任何其他方法重叠具有动态高度的多个小部件【英文标题】:Flutter overlap multiple widgets with dynamic height using Stack or any other approach 【发布时间】:2021-03-26 00:13:53 【问题描述】:

到目前为止,Flutter 是一个相当新的框架,在灵活设计方面存在许多挫折。我想要实现的目标可以通过图像更容易地展示出来。

正如您所见,当瓷砖具有边框半径时,例如在图像中,它们必须重叠,以免像第一张图像中那样留下空白空间。我当然使用“堆栈”小部件实现了这一点,方法是为上方的小部件提供固定高度,并在循环中为以下小部件提供固定顶部填充,以便我在第二张和第三张图像中获得视图。但是,这种方法使我无法在每个小部件中使用动态尺寸,因为我无法在构建时获得前一个小部件的高度。

有没有人遇到过这种 UI 模式或类似的模式可以帮助我处理这个案例?感谢您在这方面的任何合作。

【问题讨论】:

【参考方案1】:

我认为您需要自己计算事物,而不是考虑它是如何绘制的,而恰恰是您希望用数学如何绘制它。

当然要找到动态值,可以在 build 函数中使用它:

var screenSize = MediaQuery.of(context).size;
var width = screenSize.width;
var height = screenSize.height;

并在此基础上进行计算。

如果您需要在build 函数运行之前获得这些值,出于initState 或其他原因,您可以使用widthheight 初始化此小部件,如果您知道我的意思,因为widthheight的屏幕在每个小部件中都是一样的。

【讨论】:

以上是关于Flutter 使用 Stack 或任何其他方法重叠具有动态高度的多个小部件的主要内容,如果未能解决你的问题,请参考以下文章

google_maps_flutter 或任何其他 Flutter 地图插件是不是支持谷歌地图的 kml 文件?

仅在 Flutter Web 上重定向

如何使用 Flutter 中的 Stack 小部件部分覆盖视图

Flutter:在选择时重定向PopupMenuButton页面

使用Wing IDE重命名对象

我们如何在 Flutter 中为集成测试生成 json 报告?