堆栈中个体 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
属性 但没有任何运气。
默认情况下,Column
有 mainAxisSize
默认为 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")],
),
),
)
],
),
我有一个带有 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
属性 但没有任何运气。
默认情况下,Column
有 mainAxisSize
默认为 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")],
),
),
)
],
),