我需要什么:
我想按某个索引滚动列表,我该怎么做。
我所知道的:
scrollToIndex
应该从第 n 个索引开始,但是我们如何滚动到任何索引呢?
最佳答案
不幸的是,ListView 没有内置的 scrollToIndex() 函数方法。您必须开发自己的方法来测量 animateTo()
或 jumpTo()
的元素偏移量,或者您可以搜索这些建议的解决方案/插件或从其他帖子,如 Flutter: Scrolling to a widget in ListView
(自 2017 年以来,flutter/issues/12319 讨论了一般的 scrollToIndex 问题,但目前还没有计划)
但是有一种不同的 ListView 确实支持 scrollToIndex(Slashbin 提到过):
您的设置与 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 - Flutter - 如何在 flutter 的数字键盘中添加完成按钮
dart - Flutter:StatelessWidget.build 被多次调用