我想要创建一个可以无限延伸高度的列(因为使用了扩展小部件),但是SingleChildScrollView并不能满足需求。
new Scaffold(
backgroundColor: Color.fromRGBO(245, 245, 245, 1.0),
body: new Container(
child: SingleChildScrollView(
child: new Column(
mainAxisSize: MainAxisSize.max,
children: <Widget>[
header,
new Expanded(
child: pageView,
)
],
)
)
),
)
错误信息:
执行布局时抛出以下断言: RenderFlex子项具有非零的flex值,但传入的高度约束未被限制。 当一个列位于不提供有限高度约束的父级中时,例如在垂直可滚动中,它将尝试沿着垂直轴缩小包装其子项。在子项上设置flex(例如使用Expanded)表示该子项将扩展以填充垂直方向上剩余的空间。这两个指令是相互排斥的。如果父级要收缩包装其子项,则子项不能同时扩展以适应其父级。
考虑将mainAxisSize设置为MainAxisSize.min,并对灵活子项使用FlexFit.loose适合(使用Flexible而不是Expanded)。这将允许灵活的子项将自身大小调整为小于它们本来被迫占据的无限剩余空间,然后将导致RenderFlex缩小包装子项,而不是扩展以适应父级提供的最大约束。