小编典典

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

flutter

1.问题

例如,有没有一种方法可以从小部件列表ListView.builder的第二个(index = 1)项目开始?

就我而言,我正在尝试在a的顶部添加一些空白区域,ListView以便用户可以将顶部卡片滚动到更靠近他的拇指的位置。一种解决方法是Container在List小部件的顶部和底部添加empty ,以模拟空白空间。但是,ListViewContainer在屏幕上显示,用户可能会感到困惑,并且不知道仅通过滚动即可获得更多的卡片。

也许有一种方法可以做到这一点ScrollController

2.一些模板代码

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

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

阅读 613

收藏
2020-08-30

共1个答案

小编典典

  1. 您可以使用ScrollController并将其initialScrollOffset放置在您希望的位置。
ScrollController在小部件的类中声明您的内容。
ScrollController scrollController = ScrollController(
  initialScrollOffset: 10, // or whatever offset you wish
  keepScrollOffset: true,
);
  1. 将控制器添加到您的ListView
ListView.builder(
  controller: scrollController,
  itemCount: widgetsList.length,
  itemBuilder: (context, index){
    return widgetsList[index];
  },
),

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

2020-08-30