我怎样才能找出哪些项目是当前visible
或invisible
在一个ListView
?
例如,我有 100 个项目,ListView
当我滚动到屏幕或列表顶部时,我想检测哪些项目从视口中出现或消失。
插图:
我怎样才能找出哪些项目是当前visible
或invisible
在一个ListView
?
例如,我有 100 个项目,ListView
当我滚动到屏幕或列表顶部时,我想检测哪些项目从视口中出现或消失。
插图:
没有简单的方法可以做到这一点。这是同一个问题,但是,它没有答案。
有一个关于此的活动GitHub 问题。
该问题有多种解决方案。这个Gist具有一个需要rect_getter
包的功能。
或者,您可以查看此提案。
如果您正在寻找一种简单的方法来找出它,这还没有实现。但是,有一些解决方案,比如我上面提到的那些和来自其他包的解决方案,比如VisibilityDetector
来自flutter_widgets
.
为此目的有一个包。
VisibilityDetector 小部件包装了现有的 Flutter 小部件,并在小部件的可见性更改时触发回调。
用法:
VisibilityDetector(
key: Key('my-widget-key'),
onVisibilityChanged: (visibilityInfo) {
var visiblePercentage = visibilityInfo.visibleFraction * 100;
debugPrint(
'Widget ${visibilityInfo.key} is ${visiblePercentage}% visible');
},
child: someOtherWidget,
)
您也可以使用inview_notifier_list。它基本上是一个普通的 ListView,它定义了一个可见区域,并且当他们处于该区域时,它的孩子会收到通知。