1

很可能我的 SliverGrid 概念完全错了,

我想要做的是,UI 方面我想要 Flutter 中已经提供的可折叠 SliverAppBar。我的主要内容主体是一组来自 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.builderitemCount参数存在,但 SliverGrid 没有这样的选项。在这里做什么?

4

1 回答 1

10

SliverGrid 小部件没有名为itemCount. 但是,如果您阅读文档,您会发现它的委托属性采用 SliverChildBuilderDelegate 有一个名为childCount. 你可以使用这个属性来设置你想要在你的 slivergrid 中的孩子的数量。

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 
),
于 2018-12-29T16:28:53.150 回答