我的 Flutter 应用程序出现问题,我有一个只返回 StreamBuilder 的类,它运行良好,显示来自 Cloud Firestore 的数据。但是,当我尝试将此类包装在 Column 或 ListView 类中时,它不会显示任何内容。
我需要这个来显示当前页面的名称。并且 AppBar 类已经带有应用名称,所以我也不能使用它。
有谁知道我可以如何包装它并让它继续运行?
一个工作示例代码
class NewCardsList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new StreamBuilder<QuerySnapshot>(
stream: firestore.collection('cards_list').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return const Text('Connecting...');
final int cardLength = snapshot.data.documents.length;
return new ListView.builder(
itemCount: cardLength,
itemBuilder: (int index) {
final DocumentSnapshot _card= snapshot.data.documents[index];
return new ListTile(
title: new Text(_card['title']),
subtitle: new Text(_card['description']),
);
},
);
},
);
}
}
示例代码不起作用
class NewCardsList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return new Column(
children: <Widget> [
Text("Your Card List"),
StreamBuilder<QuerySnapshot>(
stream: firestore.collection('cards_list').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (!snapshot.hasData) return const Text('Connecting...');
final int cardLength = snapshot.data.documents.length;
return new ListView.builder(
itemCount: cardLength,
itemBuilder: (int index) {
final DocumentSnapshot _card= snapshot.data.documents[index];
return new ListTile(
title: new Text(_card['title']),
subtitle: new Text(_card['description']),
);
},
);
},
]));
}
}
最佳答案
用 Flexible() 包装 Streambuilder,然后用 Column() 包装 Flexible,将列设置为脚手架的主体()
关于firebase - 如何在 Flutter 中用 Column 或 ListView 类包装 StreamBuilder 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51400549/