在flutter自定义滚动视图中构建两个不同的列表

时间:2019-01-31 08:14:53

标签: flutter flutter-layout flutter-sliver

如何构建两个要垂直显示的列表,以便构建一个项目列表,然后按照该垂直顺序构建第二个列表。

1 个答案:

答案 0 :(得分:0)

您可以通过将CustomScrollView与SliverList结合使用。

您的解决方案如下所示:

CustomScrollView(
  slivers: <Widget>[
    //list 1 (using builder)
    SliverList(
        delegate: SliverChildBuilderDelegate(
              (context, i) {
            return ListTile(...); // HERE goes your list item
          },
          childCount: 3,
        ),
    ),
    //list 2 (using list of widgets)
    SliverList(
        delegate: SliverChildListDelegate([
          ListTile(..),
          ListTile(..), //HERE goes your list item
        ]),
    ),
  ],
),

这将在您向下滚动时一个接一个地建立一个列表。在上面的示例中,我使用了可用于构建列表的两种类型的委托。

  1. SliverChildBuilderDelegate-需要一个builder方法,该方法将被调用以为每个列表项构建窗口小部件。与ListView.builder()
  2. SliverChildListDelegate-需要一个小部件列表,该列表将成为SliverList的项目。与ListView(children: ...)