Flutter的ListView或Column或Row嵌套ListView,往往会报下面的错误:
RenderBox was not laid out: RenderFlex.....
这是因为ListView或Column或Row嵌套ListView,会有问题,解决办法如下:
一、ListView嵌套ListView问题:
5 | physics:NeverScrollableScrollPhysics(), |
如果需要两个listview同时滑动,则需要向他们传同一个scrollcontroller
1 | ScrollController _scrollController; |
3 | controller:_scrollController, |
6 | controller:_scrollController, |
二、Column嵌套ListView问题,给listView套个有高度的Container或SizedBox:
04 | height: ScreenUtil().setHeight(800), |
05 | child: ListView.builder( |
06 | scrollDirection: Axis.vertical, |
07 | itemBuilder:(context,index){ |
08 | return _getListItem(index); |
10 | itemCount: list.length, |
上面的问题也能用expanede解决,更加灵活,见:
Flutter Column等容器嵌套ListView报错
以上两个问题,都是因为嵌套着和被嵌套着都存在滚动问题,滚动冲突了。