dart - flutter ListView 滚动到索引不可用

我需要什么:

我想按某个索引滚动列表,我该怎么做。

我所知道的:

scrollToIndex 应该从第 n 个索引开始,但是我们如何滚动到任何索引呢?

最佳答案

不幸的是,ListView 没有内置的 scrollToIndex() 函数方法。您必须开发自己的方法来测量 animateTo()jumpTo() 的元素偏移量,或者您可以搜索这些建议的解决方案/插件或从其他帖子,如 Flutter: Scrolling to a widget in ListView

(自 2017 年以来,flutter/issues/12319 讨论了一般的 scrollToIndex 问题,但目前还没有计划)


但是有一种不同的 ListView 确实支持 scrollToIndex(Slashbin 提到过):

  • ScrollablePositionedList
    • 依赖:scrollable_positioned_list

您的设置与 ListView 完全相同,并且工作方式相同,只是您现在可以访问 ItemScrollController这样做:

  • jumpTo({index, alignment})
  • scrollTo({index, alignment, duration, curve})

简化示例:

ItemScrollController _scrollController = ItemScrollController();

ScrollablePositionedList.builder(
  itemScrollController: _scrollController,
  itemCount: _myList.length,
  itemBuilder: (context, index) {
    return _myList[index];
  },
)

_scrollController.scrollTo(index: 150, duration: Duration(seconds: 1));

(请注意,此库由 Google 开发,而非 Flutter 核心团队开发。)

关于dart - flutter ListView 滚动到索引不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54039684/

相关文章:

android - 在 Dismissible Widget 上禁用关闭方向

android - 如何在 Flutter 中删除 Firebase 云消息传递 token

android - 使用 pushNamed() 从屏幕错误中 flutter 返回数据

flutter - Flutter Text 是否支持长字的换行?

datetime - Dart/Flutter 默认日期格式

dart - 同屏多于一个 float 操作按钮显示黑屏

dart - Flutter - 如何在 flutter 的数字键盘中添加完成按钮

dart - Flutter:StatelessWidget.build 被多次调用

amazon-web-services - 在 Flutter 中从 AWS S3 上传和获取媒体文

android - 即使应用程序关闭,也在后台运行 Dart 和 Flutter 中的定期任务