我有一个listview。我想通过相应的索引号转到某个小部件。
我已经尝试使用ScrollController,但是它需要偏移值才能跳转到索引。但是我想通过使用其索引号跳到一个小部件。
请帮我修复它 预先感谢。
答案 0 :(得分:1)
不幸的是,ListView没有对scrollToIndex()函数的内置方法。您必须开发自己的方法来测量animateTo()
或jumpTo()
的元素偏移量,或者可以从其他帖子中搜索建议的解决方案/插件,例如:
(自2017年以来,flutter/issues/12319讨论了一般的scrollToIndex问题,但目前尚无计划)
但是还有一种不支持scrollToIndex的ListView:
您可以像设置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核心团队开发的。)