条内有多个streamBuilder

时间:2019-08-17 15:52:03

标签: flutter stream google-cloud-firestore flutter-sliver

我需要访问customScrollView小部件内的多个流。

现在,我的小部件是按这种方式构造的

Widget buildListParticipants() {
    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance
          .collection(users)
          .document(userID)
          .collection(groups)
          .document(groupID)
          .collection(participants)
          .snapshots(),
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
        ...
        switch (snapshot.connectionState) {
          ...
          default:
            return CustomScrollView(
              slivers: [
                SliverList(
                  ...
                ),
                SliverList(
                  ...
                ),

                SliverGrid(
                  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                    crossAxisCount: 2,
                    mainAxisSpacing: 1.0,
                    crossAxisSpacing: 1.0,
                    childAspectRatio: 1.2,
                  ),
                  delegate: SliverChildListDelegate(
                    snapshot.data.documents.map((DocumentSnapshot document) {
                      return InkWell(onTap: () {}, child: cellUser(document));
                    }).toList(),
                  ),
                ),

              ],
            );
        }
      },
    );
  }

我从第二个Sliver小部件中的流构建网格。 但是现在我需要获取另一个文档集合并使用该数据构建一个列表。 因此,基本上我需要实现另一个流构建器或将来的构建器,但是对于Sliver,我不知道该怎么做。

我不需要收听任何Firestore更改,因此我还可以构建一个静态列表并仅在打开页面时加载它。

希望您能帮助我,谢谢。

0 个答案:

没有答案