gpt4 book ai didi

flutter - 如何在 flutter 中获取 ListView 滚动的索引号?

转载 作者:行者123 更新时间:2023-12-04 12:10:04 25 4
gpt4 key购买 nike

我在 flutter 应用程序中为 ListView 构建器使用以下代码我需要在滚动时获取列表中项目的索引。就像onPageChanged:(){}的功能使用时 PageView.Builder

return ListView.builder(
itemCount: posts.length,
itemBuilder: (context, index) {
final item = posts[index];
return Post(index: index, title: 'Test', imageUrl: 'https://www.google.com',);
},
);
我怎样才能得到那个?

最佳答案

没有这么简单的方法可以做到这一点,但您可以使用 VisibilityDetector来自 visibility_detector包裹:
您可以通过用 VisibilityDetector 包裹每个列表项来获取在屏幕上完全可见的最后一个列表项的索引。 .

itemBuilder: (context, index) {
return VisibilityDetector(
key: Key(index.toString()),
onVisibilityChanged: (VisibilityInfo info) {
if (info.visibleFraction == 1)
setState(() {
_currentItem = index;
print(_currentItem);
});
},
child: Post(index: index, title: 'Test', imageUrl: 'https://www.google.com',)
);
},
_currentItem是主小部件状态中的一个变量,用于存储最后一个可见项的索引:
int _currentItem = 0;
注意:这是基于滚动方向,即最后一个可见项的索引等于滚动后可见的最后一项的索引;如果向前滚动,它是屏幕底部项目的索引,但如果反向滚动,它是屏幕顶部项目的索引。不过,这个逻辑可以很容易地改变(例如,使用队列来存储可见项目的总数)。

关于flutter - 如何在 flutter 中获取 ListView 滚动的索引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63573632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com