Flutter ListView报错RenderBox was not laid out: RenderViewport#680c1 NEEDS-LAYOUT NEEDS-PAINT
RenderBox was not laid out: RenderViewport#680c1 NEEDS-LAYOUT NEEDS-PAINT
- 使用ListView.builder()布局时,如果嵌套在Row或者Column中,可能会报这个错误,原因是没有给ListView指定大小,所以应该在ListView外面套一个SIzedBox或者Container,再指定一个高度,或者想自适应高度的话就套一个Flexible或者Expanded。
return Scaffold(
body: SafeArea(
left: false,
right: false,
child: Container(
padding: EdgeInsets.fromLTRB(0, 12, 0, 36),
child: Column(children: [
......
其他组件
......
Expanded(
child: Container(
child: ListView(
children: []
..add(row('Anywhere'))
..add(or())
..add(row('Country'))
..add(row('State'))),
)),
......
其他组件
......
]))));
- 如果还是白屏试试把shrinkWrap设置为true,并将physics设置为NeverScrollableScrollPhysics()
参考:https://blog.csdn.net/heming9174/article/details/89919561/