如何在体内创建多个listview.builder方法

时间:2019-05-16 20:42:37

标签: flutter

我一直试图在同一正文容器中显示几个列表视图。我使用Listview.builder是因为我必须获取json数据并显示在listview中。

每个列表视图都必须从不同的json文件中获取数据并垂直显示在前一个列表视图下方(是在嵌套列表视图中一样)。

但是我看到了嵌套的listvie示例。有可能与listview.builder做吗?如果是这样,请向我展示示例或教程链接。谢谢!

这是我用来创建列表视图的代码。

ListView.builder(
        itemCount: recent == null ? 0 : recent.length,
        itemBuilder: (BuildContext context, int index) {
          return Column(
            children: <Widget>[
              Card(
                child: Column(
                  children: <Widget>[
                    new Image.network(recent[index]["_embedded"]["wp:featuredmedia"][0]["source_url"]),
                    new Padding(
                      padding: EdgeInsets.all(10.0),
                      child: new ListTile(
                        title: new Padding(
                             padding: EdgeInsets.symmetric(vertical: 10.0), 
                             child: new Text(recent[index]["title"]["rendered"])),
                        subtitle: new Text(
                           recent[index]["excerpt"]["rendered"].replaceAll(new RegExp(r'<[^>]*>'), '')
                       ),
                      ),
                    )
                  ],
                ),
              )
            ],
          );
        },
      )        
    );

1 个答案:

答案 0 :(得分:1)

您可以通过将SliverListSliverChildBuilderDelegate一起使用来实现这一目标:

CustomScrollView(
  slivers: [
    SliverList(
      delegate: SliverChildBuilderDelegate(
        (BuildContext context, int index) {
          // First JSON
        },
        childCount: childCount,
      ),
    ),
    SliverList(
      delegate: SliverChildBuilderDelegate(
        (BuildContext context, int index) {
          // Second JSON
        },
        childCount: childCount,
      ),
    ),
    SliverList(
      delegate: SliverChildBuilderDelegate(
        (BuildContext context, int index) {
          // Third JSON
        },
        childCount: childCount,
      ),
    ),
    ),
  ],
);