堆栈中个体 children 的适合度

Fit of individual children in Stack

我有一个带有 children 的 Stack 小部件。其中一个 children 是一个 Align,它有一个 Container child,它有一个 Column child。这个Column有一些children。现在,在我的 Stack 中,Column 比它应该的大得多(它填满了整个屏幕),尽管 space 的三分之一就足够了。我想知道如何使用 Flexible 这样的东西,这样我就可以使用 fit 属性 来收紧 space。这可能吗?
这是我的代码的表示:

new Stack(
  children: <Widget>[
    new Container(...),
    new Align( // This takes up way more space than needed!
      alignment: new Alignment(1.0, 1.0) // This widget should be displayed at the bottom
      child: new Container(
        child: new Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget> [
            new Container(child: new Center(child: new Text("text"))),
            new Row(children: [...]),
            new Row(children: [...]),
            new Row(children: [...]),
            new Row(children: [...]),
          ]
        )
      )
    )
  ]
)

我试过 fit 属性 但没有任何运气。

默认情况下,ColumnmainAxisSize 默认为 MainAxisSize.max。 这意味着 Column 将占用所有可用高度。

在你的情况下,你不希望那样。所以你可以将该值设置为 MainAxisSize.min,这将起到相反的作用:适合它 children.

最终结果是:

    child: new Stack(
      children: <Widget>[
        new Container(...),
        new Align(
          alignment: Alignment.bottomCenter,
          child: new Container(
            color: Colors.purple,
            child: new Column(
              mainAxisSize: MainAxisSize.min,
              children: <Widget>[new Text("foo"), new Text("hello world")],
            ),
          ),
        )
      ],
    ),