flutter - 在 Stack 小部件内展开小部件

标签 flutter expand flutter-widget

我有一个堆栈小部件,里面有两个小部件。 其中一个绘制背景,另一个绘制背景。 我希望两个小部件具有相同的大小。

我想要顶部小部件(它是一列)将堆栈垂直展开并填充到背景小部件设置的大小。 我尝试设置 MainAxis mainAxisSize: MainAxisSize.max 但它不起作用。

我怎样才能让它发挥作用?

最佳答案

使用Positioned.fill

    Stack(
      children: [
        Positioned.fill(
          child: Column(
            children: [
              //...
            ],
          ),
        ),
        //...
      ],
    );

有关 Positioned 的更多信息,请参见 Flutter Widget of the Week

它是如何工作的?

这都是关于约束的。约束是从父级传递给其子级的最小/最大宽度/高度值。在 Stack 的情况下。它传递给其子项的约束声明它们可以根据需要调整自己的大小,在某些小部件的情况下,这意味着它们将是它们的“自然”大小。确定大小后,Stack 会将其子级放置在左上角。
Positioned.fillStack 获得相同的约束,但将不同的约束传递给它的 child ,声明它( child )必须具有精确的大小(这意味着填充 堆栈)。

Positioned.fill() 等同于:

Positioned(
  top: 0,
  right: 0,
  left: 0,
  bottom:0,
  child: //...
)

更多示例和信息:How to fill a Stack widget and why?Understanding constraints.

关于flutter - 在 Stack 小部件内展开小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54837854/

相关文章:

Flutter:如何正确使用 Inherited Widget?

Javascript 文本扩展器

css - 悬停和高度扩展的奇怪 css3 错误

State 对象之外的 Flutter 状态

unit-testing - 如何在 Flutter 中测试(单元测试)BehaviorSubject?

javascript - jQuery 展开/折叠层次表行

android-studio - 如何在Flutter中使用容器内的扩展 block ?

flutter :试图使列中的项目底部居中,但它保持左对齐

image - flutter : Display Local Image when Network Image not found or error fetching it?

flutter - 中心行 child 和右对齐