如何正确设置列表视图的高度

时间:2018-10-21 19:06:24

标签: layout dart flutter

我有一列有3个孩子。第三个孩子有一个ListView。如何设置ListView的高度,使其不会溢出屏幕。我不想通过从屏幕高度中减去其他2个孩子的高度来计算高度。我尝试了LayoutBuilder,但是我得到的框约束具有无限高作为最大高度(BoxConstraints(0.0 <= w <= 360.0,0.0 <= h <= Infinity))

我的小部件树看起来像这样

Container(  //Container A
 height: MediaQuery.of(context).size.height,
 child:Column(children:[
    TitleWidget(),
    SubtitleWidget(),
    Container( //Container B
      child:ListView(children:getChildren())
    )        
 ])
)

容器A的高度是屏幕高度。但是容器B的高度应为屏幕高度-TitleWidget()的高度-SubtitleWidget()的高度。 如果我没有明确设置容器B的高度,则会收到“底部的X像素溢出RenderFlex”。

我在这里真的缺少明显的东西吗?

谢谢

2 个答案:

答案 0 :(得分:1)

使用“扩展”小部件而不是“容器”小部件包装列表视图。

答案 1 :(得分:0)

我有一个类似的问题。就我而言,我保留了const promises = []; for (let i = 0; i < 4; i++) { promises.push($.ajax(....)); } Promise.all(promises).then((results) => { // do stuff with results }) .catch((err) => { // handle errors }); ,并在ListView中添加了Container,这会将ListView的大小缩小到所有子级的总高度。

shrinkWrap: true,我特别不希望ListView在列项目下滚动,但我希望所有内容一起滚动。