10

下面的代码适用于我从 firestore 调用和显示数据:

return ListView(
 padding: const EdgeInsets.only(top: 20.0),
 children: snapshot.map((data) => _buildListItem(context, data)).toList(),
);

但是如果我试图把它放在一个列中,所以我在它上面添加了另一个小部件,它会失败并给出stack overflow

return Column(
    children: <Widget>[
    Text('Hellow'),
  ListView(
  padding: const EdgeInsets.only(top: 20.0),
  children: snapshot.map((data) => _buildListItem(context, data)).toList(),
)]);
4

1 回答 1

32

你需要把你ListView放在一个Expanded小部件里面,这样它就知道它可以填充多少空间。

return Column(
    children: <Widget>[
      Text('Hellow'),
      Expanded(
        child: ListView(
          padding: const EdgeInsets.only(top: 20.0),
          children:
              snapshot.map((data) => _buildListItem(context, data)).toList(),
        ),
      ),
    ],
  );
于 2018-12-21T16:07:20.580 回答