22

我怎样才能找出哪些项目是当前visibleinvisible在一个ListView
例如,我有 100 个项目,ListView当我滚动到屏幕或列表顶部时,我想检测哪些项目从视口中出现或消失。

插图:

在此处输入图像描述

4

3 回答 3

12

没有简单的方法可以做到这一点。是同一个问题,但是,它没有答案。

有一个关于此的活动GitHub 问题

该问题有多种解决方案。这个Gist具有一个需要rect_getter的功能。
或者,您可以查看此提案

TL;博士

如果您正在寻找一种简单的方法来找出它,这还没有实现。但是,有一些解决方案,比如我上面提到的那些和来自其他包的解决方案,比如VisibilityDetector来自flutter_widgets.

于 2019-07-12T19:08:24.367 回答
1

为此目的有一个包。

VisibilityDetector 小部件包装了现有的 Flutter 小部件,并在小部件的可见性更改时触发回调。

用法:

VisibilityDetector(
    key: Key('my-widget-key'),
    onVisibilityChanged: (visibilityInfo) {
      var visiblePercentage = visibilityInfo.visibleFraction * 100;
      debugPrint(
          'Widget ${visibilityInfo.key} is ${visiblePercentage}% visible');
    },
    child: someOtherWidget,
  )
于 2021-11-08T02:59:14.440 回答
1

您也可以使用inview_notifier_list。它基本上是一个普通的 ListView,它定义了一个可见区域,并且当他们处于该区域时,它的孩子会收到通知。

在此处输入图像描述

于 2021-12-05T15:07:10.223 回答