如何正确设置列表视图的高度
Posted
技术标签:
【中文标题】如何正确设置列表视图的高度【英文标题】:How to correctly set height for the list view 【发布时间】:2019-03-25 21:50:19 【问题描述】:我有一列有 3 个孩子。第三个孩子有一个 ListView。如何设置 ListView 的高度,使其不会溢出屏幕。我不想通过从屏幕高度中减去其他 2 个孩子的高度来计算高度。我尝试了 LayoutBuilder 但我得到的框约束将 Infinity 作为最大高度 (BoxConstraints(0.0
我的小部件树看起来像这样
Container( //Container A
height: MediaQuery.of(context).size.height,
child:Column(children:[
TitleWidget(),
SubtitleWidget(),
Container( //Container B
child:ListView(children:getChildren())
)
])
)
Container A 的高度就是屏幕高度。但是容器 B 的高度应该是屏幕高度 - TitleWidget() 的高度 - SubtitleWidget() 的高度。 如果我没有明确设置容器 B 的高度,我会得到“A RenderFlex 在底部被 X 像素溢出”。
我在这里遗漏了一些非常明显的东西吗?
谢谢
【问题讨论】:
【参考方案1】:使用 Expanded 小部件而不是 Container 小部件包装您的列表视图。
【讨论】:
【参考方案2】:我遇到了类似的问题。就我而言,我保留了Container
,并在我的ListView 中添加了shrinkWrap: true,
,这会将ListView 的大小缩小到它所有子项的总高度。
和physics: NeverScrollableScrollPhysics(),
我特别不希望 ListView 在列项下滚动,但我希望所有内容一起滚动。
【讨论】:
以上是关于如何正确设置列表视图的高度的主要内容,如果未能解决你的问题,请参考以下文章