跟踪当前在屏幕上可见的列表中的所有项目
Tracking what all items of a list are currently visible on the screen
假设我有一个包含 10 个项目的 recyclerview。在这 10 个中,0 - 4 个是一次性可见的。向下滚动时,第 0 个元素离开屏幕,第 5 个元素进入。我想跟踪这些事件 - 在那里我知道元素 0 - 4 是可见的,然后在滚动时,1-5 是可见的。
有什么办法可以实现吗?我想跟踪用户在 recyclerview 的特定项目上花费的时间。
在 RecyclerView 上设置 addOnScrollListener 并获取第一个和最后一个可见行
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
int firstVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
int lastVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
// Now you can easily get all rows b/w first and last item
}
}
});
您可以使用网格/线性布局方法(findFirstVisibleItemPosition()
、findLastVisibleItemPosition()
、findFirstCompletelyVisibleItemPosition()
、findLastCompletelyVisibleItemPosition()
)来跟踪可见和完全可见的项目
如果你想跟踪is item visible on screen
一些threshold
意味着user spent enough time to view the content
那么你可以参考下面的博客。
一个非常好的博客,它演示了如何使用 scroll callbacks of LayoutManager
和 RxJava Subscribers
来跟踪项目可见性满足阈值
https://proandroiddev.com/detecting-list-items-perceived-by-user-8f164dfb1d05
假设我有一个包含 10 个项目的 recyclerview。在这 10 个中,0 - 4 个是一次性可见的。向下滚动时,第 0 个元素离开屏幕,第 5 个元素进入。我想跟踪这些事件 - 在那里我知道元素 0 - 4 是可见的,然后在滚动时,1-5 是可见的。
有什么办法可以实现吗?我想跟踪用户在 recyclerview 的特定项目上花费的时间。
在 RecyclerView 上设置 addOnScrollListener 并获取第一个和最后一个可见行
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
int firstVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstCompletelyVisibleItemPosition();
int lastVisiblePosition = ((LinearLayoutManager)recyclerView.getLayoutManager()).findLastCompletelyVisibleItemPosition();
// Now you can easily get all rows b/w first and last item
}
}
});
您可以使用网格/线性布局方法(findFirstVisibleItemPosition()
、findLastVisibleItemPosition()
、findFirstCompletelyVisibleItemPosition()
、findLastCompletelyVisibleItemPosition()
)来跟踪可见和完全可见的项目
如果你想跟踪is item visible on screen
一些threshold
意味着user spent enough time to view the content
那么你可以参考下面的博客。
一个非常好的博客,它演示了如何使用 scroll callbacks of LayoutManager
和 RxJava Subscribers
来跟踪项目可见性满足阈值
https://proandroiddev.com/detecting-list-items-perceived-by-user-8f164dfb1d05