我有一列有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”。
我在这里真的缺少明显的东西吗?
谢谢
答案 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在列项目下滚动,但我希望所有内容一起滚动。