记一个Flutter布局嵌套的坑

记一个Flutter布局嵌套的坑

listview嵌套listview
在ListView里嵌套ListView,内容不显示

内容不显示
对照组:把内部的ListView删除
对照组,内容显示
参考官方文档:
官方文档截图

当传入的垂直约束是无限制的
当一个列有一个或多个扩展或灵活的孩子,和被放置在另一个列,或在列表视图中,或在其他情况下,不提供一个最大高度约束的列,在运行时你会得到一个异常说零flex有孩子但垂直约束是无界的。
这个例外的细节中描述的问题是,使用Flexible或expand意味着在布局所有其他子节点之后剩余的空间必须均等地共享,但是如果传入的垂直约束是无限制的,那么剩余的空间将是无限的。
解决这个问题的关键通常是确定为什么列接收到无限制的垂直约束。
出现这种情况的一个常见原因是列被放置在另一列中(没有使用展开或灵活的内部嵌套列)。当一个列展示了它的非伸缩子列(那些既没有展开也没有伸缩的子列)时,它会给它们无界约束,以便它们可以确定自己的维度(传递无界约束通常会给子列信号,告诉它应该收缩其内容)。这种情况下的解决方案通常是将内列包装在一个展开包中,以指示它应该占用外列的剩余空间,而不是允许它占用所需的任何空间。
这个消息显示的另一个原因是在列表视图或其他垂直可滚动的列内嵌套。在这种情况下,实际上存在无限的垂直空间(垂直滚动列表的全部意义在于允许无限的垂直空间)。在这种情况下,为什么内列应该有一个扩展的或灵活的子列呢?这种情况下的解决方案通常是从内部子组件周围移除扩展的或灵活的小部件。
有关约束的更多讨论,请参见BoxConstraints。

该问题的解决办法
给container加上height和width
结果
我的情况是加上container的width和height就解决了

猜你喜欢

转载自blog.csdn.net/LINKUN787624675/article/details/107215254