“在无限制的约束条件下,它们试图使自己的孩子适应这个方向。在这种情况下,您不能将子部件上的flex设置为0以外的任何东西(默认值)。在小部件库中,这意味着当flex框位于另一个flex框内或在可滚动的内部时,您不能使用展开。如果这样做了,您将收到一条异常消息指向该文档。”
https://flutter.dev/docs/development/ui/layout/box-constraints#flex
发布于 2021-03-08 17:00:14
列或行的默认(主轴)大小是包含其子行的最小大小。通常这些孩子的身高是固定的。例如,如果该列有3个50高度的子列,则该列的高度将为150。但是灵活的小部件是个例外。
灵活的小部件通过将可用空间除以其弹性因子来计算它们的大小。如果包含灵活小部件的列不受约束,则此可用空间是无限的。所以无限/挠曲因子仍然是无穷大。(实际上,您得到的是一个异常,而不是无限大小的小部件)
这个问题的解决方案是将列或行小部件放入一个固定大小的小部件中。
例如,:您想要创建一个高度为500的列,其中两个子列的高度为50,另一个则填充可用的空间。您可以将列小部件包装在500个大小的盒子中,并在扩展的小部件中包装第3号子部件。扩展的小部件填充所有剩余的空间。代码:
SizedBox(
height: 500,
child: Column(
children:
[
Container(height: 50, color: Colors.red,),
Container(height: 50, color: Colors.blue,),
Expanded(child: Container(color: Colors.green)),
],
),
),https://stackoverflow.com/questions/66529033
复制相似问题