2

我有一个包含 2 个相关集合的 firebase 数据库:“产品”和“类别”。

我想在按类别分组的列表视图中显示产品。

在每个产品文档中都有一个“类别”字段,即类别 ID。

现在我有这个代码来创建列表视图:

StreamBuilder(
    stream: Firestore.instance.collection('products').snapshots(),
    builder: (context, snapshot) {
      if (!snapshot.hasData) return const Text("Loading...");
      return ListView.builder(
        itemBuilder: (context, index) => buildProductItem(context, snapshot.data.documents[index]),
        itemCount: (snapshot.data.documents.length),
      );
    }
)

我已经尝试了一些事情(例如:question),但我想将其保留在 StreamBuilder 中,以便数据仍会实时更新。

我将如何对它们进行分组,以便我可以在每个组上方显示一个标题,并在下方显示与该标题对应的产品?

4

1 回答 1

1

实际上,通过我首先提供的问题的链接来修复它非常容易。您可以只使用 GroupedListView (包)而不是 Listview.builder。不知道为什么我花了这么长时间才得到它:p希望这对将来的其他人有所帮助:)

StreamBuilder(
   stream: Firestore.instance.collection('products').snapshots(),
   builder: (context, snapshot) {
     if (!snapshot.hasData) return const Text("Loading...");
     return GroupedListView(
       elements: snapshot.data.documents,
       groupBy: (element) => element['category'],
       groupSeparatorBuilder: _buildGroupSeparator,
       itemBuilder: buildProductItem,
       order: GroupedListOrder.ASC,
     );
   }
),```
于 2020-05-28T09:06:37.413 回答