【问题标题】:How to make a `ListView.builder` Start at a Specific Index如何使“ListView.builder”从特定索引开始
【发布时间】:2019-11-15 21:38:40
【问题描述】:

1。问题

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

在我的例子中——更多信息 herehere 如果你有兴趣——我试图在 ListView 的顶部添加一些空白空间,以便用户可以滚动顶部卡片更靠近他的拇指。一种解决方法是将空的Containers 添加到小部件List 的顶部和底部以模拟空白空间。但是,ListView 会将Containers 呈现在屏幕上,用户可能会感到困惑,并且不知道只需滚动即可使用更多卡片。

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

2。一些模板代码

我不认为公开代码会有多大帮助,因为我只是使用典型的ListView.builder,但这里是为了以防你需要复习。

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

【问题讨论】:

    标签: listview flutter


    【解决方案1】:

    您可以使用 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];
        },
      ),
      

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

    【讨论】:

      猜你喜欢
      • 2017-04-24
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      相关资源
      最近更新 更多