【发布时间】:2020-11-10 08:22:03
【问题描述】:
目前,我有一个 StreamBuilder 从 Firebase 为群组消息应用程序提取数据。我有一个 snapshot.hasData 检查以确保在显示消息之前有数据。问题是当 setState 重建小部件时,它也会重建 StreamBuilder 导致它在再次完成加载数据之前显示静态 snapshot.hasData == false 内容。这看起来真的很糟糕,因为它加载速度非常快,以至于每次重建时屏幕看起来都会闪烁一秒钟。
如何在数据重新加载时保留数据,使其不会闪烁?
在特定情况下,有什么方法可以阻止 StreamBuilder 重建?
谢谢!
编辑添加的当前代码。
var firebaseStream;
@override
void initState() {
super.initState();
firebaseStream = Firestore.instance
.collection('groups')
.document(groupID)
.collection('messages')
.orderBy('date', descending: true)
.limit(15)
.snapshots();
StreamBuilder(
stream: firebaseStream,
builder: (context, snapshot) {
if (!snapshot.hasData)
return Container(
color: Colors.red,);
return ListView.builder(
【问题讨论】:
标签: flutter dart stream-builder