在一个可以滚动的 Widget 嵌套另外一个可滚动的 Widget会报错,因为两个都是可以滚动,所以只需要禁止子 Widget 的滚动属性即可。
RenderBox was not laid out: _RenderSingleChildViewport#652a6 relayoutBoundary=up7 NEEDS-PAINT
'package:flutter/src/rendering/box.dart':
Failed assertion: line 1687 pos 12: 'hasSize'
解决方法非常简单,只需要增加shrinkWrap: true
和 physics: NeverScrollableScrollPhysics()
即可。
SingleChildScrollView(
child: Column(
children: <Widget>[
GridView.count(
crossAxisCount: 2,
children: <Widget>[],
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
),
ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return Text("test");
},
physics: NeverScrollableScrollPhysics(),
shrinkWrap: true,
)
],
),
)
网友评论