Flutter基础:布局出了问题,为什么我的Column用不好?

本文探讨了在Flutter中使用Column布局时遇到的问题,包括Column嵌套导致的异常及Scroll组件中的表现。分析了 RenderFlex children have non-zero flex but incoming height constraints are unbounded. 的错误原因,并提供了场景1到4的解决方案,建议使用Expanded或Flexible组件适当地限制高度,避免无限约束导致的问题。
摘要由CSDN通过智能技术生成

满怀信心使用Column进行布局,总会遇到各种各样异常,有的直接报错,有的表现形式和预想的不同。下面直接分场景归纳并解决Column中的问题(大多数布局问题都有Column这货参与):

1.Column中嵌套Column,外层Column直接撑满屏幕,而内层Column只是刚好为子元素高度(子元素没有Flexible类型组件)

2.Column中嵌套Column,内层Column有Expanded,直接抛出异常

3.Scroll类型组件中嵌套Column,Column只是刚好为子元素高度(子元素没有Flexible类型组件),和场景一表现一致

4.Scroll类型组件中嵌套Column,内层Column有Expanded,直接抛出异常,报错和场景二一致

1、3,2、4场景极为相似,阅读源码后发现原因都是

场景2,4报错信息总结为一句话:

RenderFlex children have non-zero flex but incoming height constraints are unbounded.

什么时unbounded的constraints?,源码告诉我们:“An axis whose maximum constraint is infinite is _unbounded_.”,也就是maxHight为无限大,这会引发什么现象?源码中又有透露:

“it gives them unbounded constraints so that they can determine their own dimensions (passing unbounded constraints usually s

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值