很可能我对SliverGrid的概念完全错了,
我想做的是,在UI方面,我希望可折叠的SliverAppBar在Flutter中已经可用。我的主要内容是来自API响应的图像集,这些图像已经解析并加载到List变量中。
现在这是我的代码:
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(expandedHeight: 150.0, backgroundColor: Colors.green),
SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3
),
delegate: SliverChildBuilderDelegate((BuildContext context, int index){
return Padding(
padding: EdgeInsets.symmetric(horizontal: 2.0, vertical: 2.0),
child: InkWell(
child: Card(
elevation: 8.0,
child: FadeInImage.memoryNetwork(fit: BoxFit.cover,image: myimagelist[index].thumbnail, placeholder:kTransparentImage,fadeInCurve: Curves.bounceIn,),
),
)
);
}),
),
],
),
我认为这可能是因为我无法告诉小部件数据多长时间。对于GridView.builder itemCount
参数,但SliverGrid没有这样的选项。在这里做什么?
答案 0 :(得分:1)
SliverGrid小部件没有名为itemCount
的属性。但是,如果您阅读docs,则会看到带有SliverChildBuilderDelegate的委托属性具有名为childCount
的属性。您可以使用此属性来设置所需的子代数。
delegate: SliverChildBuilderDelegate((BuildContext context, int index){
return Padding(
padding: EdgeInsets.symmetric(horizontal: 2.0, vertical: 2.0),
child: InkWell(
child: Card(
elevation: 8.0,
child: FadeInImage.memoryNetwork(fit: BoxFit.cover,image: myimagelist[index].thumbnail, placeholder:kTransparentImage,fadeInCurve: Curves.bounceIn,),
),
)
);
},
childCount: 3, // Your desired amount of children here
),