首页 > 解决方案 > 在 CustomScrollView 中使用 StreamBuilder 和 SliverLists

问题描述

我正在尝试使用 aStreamBuilder来获取数据,并且我想使用 a SliverListall inside a来显示该数据,CustomScrollView这样我就可以利用CustomScrollView.

关于如何实现这一目标的任何想法?

标签: dartflutter

解决方案


当然,这很简单,这里有一个代码示例:

    class SampleStreamBuilder extends StatelessWidget {
      Stream<List<String>> loadData() async* {
        await Future.delayed(Duration(seconds: 3));
        yield List.generate(10, (index) => "Index $index");
      }

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: StreamBuilder<List<String>>(
            stream: loadData(),
            builder: (context, snapshot) {
              return snapshot.hasData
                  ? CustomScrollView(
                      slivers: [
                        SliverList(
                          delegate: SliverChildBuilderDelegate((context, index) {
                            return ListTile(
                              title: Text(snapshot.data[index]),
                            );
                          }, childCount: snapshot.data.length),
                        )
                      ],
                    )
                  : Center(
                      child: CircularProgressIndicator(),
                    );
            },
          ),
        );
      }
    }

推荐阅读