В настоящее время у меня есть 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(