首页 > 建站教程 > APP开发,混合APP >  Flutter ListView嵌套Listview问题和Column嵌套ListView问题正文

Flutter ListView嵌套Listview问题和Column嵌套ListView问题

Flutter的ListView或Column或Row嵌套ListView,往往会报下面的错误:

RenderBox was not laid out: RenderFlex.....

这是因为ListView或Column或Row嵌套ListView,会有问题,解决办法如下:

一、ListView嵌套ListView问题:
1ListView(
2    children: <Widget>[
3        ListView(
4            shrinkWrap: true, //为true可以解决子控件必须设置高度的问题
5            physics:NeverScrollableScrollPhysics(),//禁用滑动事件
6        ),
7    ],
8)
如果需要两个listview同时滑动,则需要向他们传同一个scrollcontroller
1ScrollController _scrollController;
2  ListView(
3    controller:_scrollController,
4    children: <Widget>[
5        ListView(
6            controller:_scrollController,
7        ),
8    ],
9)
二、Column嵌套ListView问题,给listView套个有高度的Container或SizedBox:
01Column(
02    children: <Widget>[
03        Container(
04            height: ScreenUtil().setHeight(800),
05            child: ListView.builder(
06                scrollDirection: Axis.vertical,
07                itemBuilder:(context,index){
08                    return _getListItem(index);
09                },
10                itemCount: list.length,
11            ),
12        ),
13    ],
14)
上面的问题也能用expanede解决,更加灵活,见:Flutter Column等容器嵌套ListView报错

以上两个问题,都是因为嵌套着和被嵌套着都存在滚动问题,滚动冲突了。