首页 > 解决方案 > 如何使用 Streambuilder 和 firebase QuerySnapshot 使用 GroupedListView

问题描述

我正在尝试使用 GroupedListview() 显示来自 Firebase 云的一些数据。当我使用普通的 Listview.builder() 时,一切正常。但我没有让 GroupedListview 工作。我的 Snapshot.docs 有一个名为 ['date'] 的时间戳,我想用它来分隔排序和分隔列表。

在这里你可以看到我正常的 ListView:

StreamBuilder<QuerySnapshot>(
            stream: _firestoreDb,
            builder: (context, snapshot) {
              if (!snapshot.hasData) return CircularProgressIndicator();
              return ListView.builder(
                  physics: BouncingScrollPhysics(),
                  reverse: true,
                  itemCount: snapshot.data.docs.length,
                  itemBuilder: (context, int index) {
                    return JumpTile(
                      snapshot: snapshot.data,
                      index: index,
                    );
                  });
            }),

这是我尝试使用 GroupedListview:

StreamBuilder<QuerySnapshot>(
            stream: _firestoreDb,
            builder: (context, snapshot) {
              if (!snapshot.hasData) return CircularProgressIndicator();
              return GroupedListView(
                  elements: snapshot.data.docs,
                  groupBy: (element) => element['date'],
                  groupHeaderBuilder: (element) =>
                      Text(element['date'].toString()),
                  indexedItemBuilder: (context, snapshot, int index) {
                    return JumpTile(
                      snapshot: snapshot.data,
                      index: index,
                    );
                  });
            }),

这是我显示的错误:类型'() => Map<String, dynamic>' 不是类型'QuerySnapshot' 的子类型

标签: flutter

解决方案


推荐阅读