-
原因
SingleChildScrollView 和 ListView 都有滚动属性physics 他们默认是都是可以滚动的,所以一起使用会报错 -
报错信息为
RenderBox was not laid out: _RenderScrollSemantics#ccded relayoutBoundary=up1 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE 'package:flutter/src/rendering/box.dart': Failed assertion: line 1681 pos 12: 'hasSize'
解决方式
-
禁用 ListView 的滚动physics 保留 SingleChildScrollView 的滚动
Listview 执行 physics 属性 new NeverScrollableScrollPhysics(), //禁用滚动事件 -
ListView.builder( shrinkWrap: true, physics: new NeverScrollableScrollPhysics(), )
特别注意 ListView 嵌套 ListView.builder 需要后者shrinkWrap = true,不然报错;