【flutter浆糊踩坑记】使用Expanded布局时报错The following assertion was thrown during performLayout

 浆糊之家   2019-11-05 17:17   1,152 views 热度值

在使用Row和Column布局,在用了Expanded组件时报错如下:

在报错时找到有效线索信息不多,因为结构创建和目前抛出来的错误还是有些差异,

但其中有一句是如下:
大小太过于灵活,当时我的代码是Row()组件内还套了Row()组件的结构,

从上方线索查找问题,这时候我就想到,我当时是直接在底层Row()组件中直接利用撑开组件Expanded,而上一层父组件或某个N父组件大小是特别灵活没有定大小是弹性的。

所以整体在flutter中无法计算大小来撑开布局,这时候我就把父组件上面的Row内也使用了Expanded组件撑开才得以不报错

PS:这里说明一下,你父层组件你是可以使用 外层包裹一个固定宽度组件方式来实现不报错,但局限了整体弹性布局业务考虑了!

以下粘贴我的出问题的代码

最后修复的代码,就是在最顶层Row组件内在加上一个Expanded撑开组件即可,这样flutter里面才可以计算组件盒子大小

此时报错就顺序解决,渲染正常

总结:像flutter内不能像HTML一样写完全的flex弹性使用,多多少少还是有些坑点的,比如这次Row弹性组件内在套用了其它的Row,顶层必须先撑开计算,这样嵌套层的Row才能正常使用Expanded组件。

否则引起flutter计算组件不正确,直接抛出父组件一直是弹性无法正常计算宽度撑开。

 发表评论


表情