如何制作一个ListView.builder从一个特定的索引开始

时间:2019-11-15 21:38:40

标签: listview flutter

1。问题

ListView.builder是否有办法从小部件列表的第二个(index = 1)开始?

对于我来说-有关更多信息herehere(如果您有兴趣),我正在尝试在ListView的顶部添加一些空白区域,以便用户可以滚动顶部的卡靠近他的拇指。一种解决方法是在Container小部件的顶部和底部添加空的List,以模拟空白空间。但是,ListView将在屏幕上显示Container,并且用户可能会感到困惑,并且不知道仅通过滚动即可获得更多的卡片。

也许可以通过ScrollController来做到这一点?

2。一些模板代码

我认为公开代码不会有太大帮助,因为我只是使用典型的ListView.builder,但是在这种情况下,如果您需要复习。

ListView.builder(
  itemCount: widgetsList.length,
  itemBuilder: (context, index){
    return widgetsList[index];
  },
),

1 个答案:

答案 0 :(得分:0)

您可以使用ScrollController并将其initialScrollOffset保留在原来的位置。

  1. 在窗口小部件的类中声明您的ScrollController
    ScrollController scrollController = ScrollController(
      initialScrollOffset: 10, // or whatever offset you wish
      keepScrollOffset: true,
    );
    
  2. 将控制器添加到您的ListView
    ListView.builder(
      controller: scrollController,
      itemCount: widgetsList.length,
      itemBuilder: (context, index){
        return widgetsList[index];
      },
    ),
    

此外,您甚至可能想要为背景滚动动作创建动画。这可以通过在小部件的.animateTo中使用initState方法来实现。