列内的ListView引发错误'垂直视口被赋予无限制的高度'

时间:2019-11-22 14:30:28

标签: flutter layout dart

我的问题似乎是ListView inside Column causes 'Vertical viewport was given unbounded height'的重复,但是在Expanded周围添加FlexibleListView小部件的解决方案根本不起作用。它仍然引发相同的错误:Vertical viewport was given unbounded height.

var data = ['a','b','c','d'];

Column(
  children: <Widget>[
    ListView.builder(
      itemCount: data.length,
      itemBuilder: (ctx, i) {
        return Row(
          children: <Widget>[
            Text(data[i], style: TextStyle(fontSize: 24 * Rat.rat, color: Colors.white)),
          ],
        );
      },
    ),
  ],
);

显然,可以通过在ListView周围添加一个具有固定高度的容器来轻松地对其进行修复,但是我不需要它,我希望它可以动态调整大小。

2 个答案:

答案 0 :(得分:1)

更新:

尝试这样的事情:

    class Esempio1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("WAKAWAKA"),
      ),
          body: Container(
        child: Column(
          children: <Widget>[
            Text("eg1"),
            Text("eg2"),
            Text("eg3"),
            Expanded(
              child: ListView.builder(
                itemCount: 20,
                itemBuilder: (ctx,i){
                  return ListTile(title: Text("aaaaaa$i"),);
                },
              ),
            )
          ],
        ),
      ),
    );
  }
}

我刚刚尝试了这段代码,它应该可以执行您想要的操作。

OP实际上在另一个Column中包含了代码块,这就是Expanded不能正常工作的原因,它包裹在ListView周围。将Column包裹在另一个Expanded中解决了该问题,并使其按预期工作。

答案 1 :(得分:0)

如何在SingleChildScrollView中包装ListView构建器并将其物理设置为

 physics: NeverScrollableScrollPhysics(),