了解 RecyclerView 项目何时首次显示 (Android)
Know when RecyclerView items are shown for the first time (Android)
我正在尝试使用 Google Analytics Enhanced Ecommerce 在 RecyclerView StaggeredGrid 上发送 "impressions" 我的产品。每次用户滚动时,我都会检查哪些产品可见并发送命中:
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
for (int i = firstVisibleItemPosition; i <= lastVisibleItemPosition; i++) {
Offer offer = mListViewContentFetcher.getApiObjects().get(i);
Product product = new Product()
.setId(offer.getCode())
.setName(offer.getTitle())
.setCategory(offer.getStore().getName())
.setPosition(i);
builder.addImpression(product, "products_list");
}
mTracker.setScreenName("Products List");
mTracker.send(builder.build());
}
}
但我还需要 运行 在首次构建 RecyclerView 并且第一批产品可见时执行此操作。
我怎么知道第一批物品准备好了?
我尝试在 recyclerview 和 onBindViewHolder 上使用 ViewTreeObserver 但没有成功。
编辑: 这是在 viewpager 上使用的片段内,所以我需要知道项目何时真正可见,而不仅仅是添加。
谢谢
您不能使用 RecyclerView.Adapter 的 onViewAttachedToWindow and onViewDetachedFromWindow 方法来跟踪事情何时 in/out 可见吗?
我正在尝试使用 Google Analytics Enhanced Ecommerce 在 RecyclerView StaggeredGrid 上发送 "impressions" 我的产品。每次用户滚动时,我都会检查哪些产品可见并发送命中:
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (newState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
for (int i = firstVisibleItemPosition; i <= lastVisibleItemPosition; i++) {
Offer offer = mListViewContentFetcher.getApiObjects().get(i);
Product product = new Product()
.setId(offer.getCode())
.setName(offer.getTitle())
.setCategory(offer.getStore().getName())
.setPosition(i);
builder.addImpression(product, "products_list");
}
mTracker.setScreenName("Products List");
mTracker.send(builder.build());
}
}
但我还需要 运行 在首次构建 RecyclerView 并且第一批产品可见时执行此操作。
我怎么知道第一批物品准备好了? 我尝试在 recyclerview 和 onBindViewHolder 上使用 ViewTreeObserver 但没有成功。
编辑: 这是在 viewpager 上使用的片段内,所以我需要知道项目何时真正可见,而不仅仅是添加。
谢谢
您不能使用 RecyclerView.Adapter 的 onViewAttachedToWindow and onViewDetachedFromWindow 方法来跟踪事情何时 in/out 可见吗?