Flutter列自动高度由父行

10 浏览
0 Comments

Flutter列自动高度由父行

我尝试使用自动调整高度的列,但仍然不起作用。

示例

  • 卡片

      • 扩展(flex:4)

        • 网络图片(该图片高度为120)
      • 扩展(flex:4)

        • 容器

          • 列(这是我需要的列)

所以我发现解决方案是我必须使用Expanded小部件,所以我尝试了一下,并得到了异常

  • 卡片

      • 扩展(flex:4)

        • 网络图片(该图片高度为120)
      • 扩展(flex:4)

        • 容器

          • 扩展

            • 列(这是我需要的列)

扩展小部件必须直接放置在Flex小部件内。

I/flutter(14383):扩展(没有深度,flex:1,dirty)有一个Flex祖先,但它们之间还有其他小部件:

I/flutter(14383):- 扩展(flex:4)(这是一个不同于有问题的扩展)

I/flutter(14383):这些小部件不能够放置在扩展和其Flex之间。

谢谢帮助。

0
0 Comments

问题:Flutter中的Column无法自动适应父行高度的原因以及解决方法

在Flutter中,当将Expanded小部件添加到Container中时,可能会出现这个问题。根据Flutter的文档,Expanded小部件必须是Row、Column或Flex的子孙节点,并且从Expanded小部件到其封闭的Row、Column或Flex的路径必须仅包含StatelessWidgets或StatefulWidgets(而不是其他类型的小部件,如RenderObjectWidgets)。

解决方法是将Container替换为Column。但是,由于使用了Container来设置填充,因此可以尝试将Container放在Expanded内部来解决问题。

此外,Flexible和Expanded之间的区别是,Flexible不要求子部件填充可用空间,而Expanded则要求子部件填充可用空间。想要了解更多关于Flexible的信息,可以参考Flutter的官方文档:https://docs.flutter.io/flutter/widgets/Flexible-class.html。

0