在Flutter中将小部件放置在ListView上方

18
以下代码对我来说在调用和显示来自Firestore的数据方面运行良好:

以下代码对我来说在调用和显示来自Firestore的数据方面运行良好:

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

但如果我尝试将它放在一列中,所以我在它上面添加另一个小部件,它会失败并显示堆栈溢出

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

在你的 ListView 中添加 - shrinkWrap: true, - anmol.majhail
1个回答

46

你需要将 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(),
        ),
      ),
    ],
  );

2
正确的答案。如果您想使文本也可滚动,则必须将列包装在CustomScrollView中并使用Sliverlist。 - Ayush P Gupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接