很可能我误解了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没有此类选项。这里做什么

最佳答案

SliverGrid小部件没有名为itemCount的属性。但是,如果您阅读docs,则会看到带有SliverChildBuilderDelegate的委托(delegate)属性具有名为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
),

关于dart - 如何在SliverGrid中使用itemCount?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53969897/

10-10 08:20