Error: RenderBox was not laid out, Failed assertion: line 1940 pos 12: 'hasSize'

此类错误还挺常见,之后遇到相关的错误时在这里补充。

// todo

这里总结下就是当出现这个错误时,就代表了相关的元素没有设置宽高的限制导致的,如果要使用Expanded组件,这个组件就必须是Row、Column等组件的直接子元素。
否则当子元素是无界元素(及没有宽高的限制,例如ListView。)时,因为没有明确定义ListView可以占多高,所以就会出现这个错误。
解决方案就是使用Container或SizeBox组件设置宽高来解决。
如果是在Row子元素上出现的错误的话,那么用Expanded组件包装一下(Expanded只是一个常用组件,还有Fixable等组件也可以使用)就行了,包装后的结构为Row -> Expanded -> 无界元素。

Error: RenderBox was not laid out, Failed assertion: line 1940 pos 12: 'hasSize'

posted @ 2024-11-27 17:31  星小梦  阅读(8)  评论(0编辑  收藏  举报