一尘不染

在CustomScrollView中使用StreamBuilder和SliverLists

flutter

我正在尝试使用a StreamBuilder来获取数据,并且想在a SliverList内使用all
来显示数据,CustomScrollView以便可以利用附带的功能CustomScrollView

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


阅读 321

收藏
2020-08-13

共1个答案

一尘不染

当然,这很容易,这里有一个代码示例:

    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(),
                    );
            },
          ),
        );
      }
    }
2020-08-13