小编pet*_*mes的帖子

了解 RecyclerView 项目何时首次显示 (Android)

我正在尝试使用 Google Analytics 增强型电子商务在 RecyclerView StaggeredGrid 上发送我的产品的“印象”。每次用户滚动时,我都会检查哪些产品可见并发送点击:

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

但我还需要在第一次构建 RecyclerView 并且第一个产品可见时运行它。

我怎么知道第一个项目已经准备好?我尝试在 recyclerview 和 onBindViewHolder 上使用 ViewTreeObserver 但没有成功。

编辑:这是在视图页面上使用的片段内部,所以我需要知道这些项目何时真正可见,而不仅仅是添加。

谢谢

android google-analytics visible staggeredgridlayout android-recyclerview

4
推荐指数
1
解决办法
2681
查看次数