在CustomScrollView中使用StreamBuilder和SliverLists
问题内容:
我正在尝试使用a StreamBuilder
来获取数据,并且想在a SliverList
内使用all
来显示数据,CustomScrollView
以便可以利用附带的功能CustomScrollView
。
关于如何实现此目标的任何想法?
问题答案:
当然,这很容易,这里有一个代码示例:
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(),
);
},
),
);
}
}