Coordinatorlayout AppBarLayout RecyclerView item曝光埋点失准分析

博客详细分析了在 Coordinatorlayout 和 AppBarLayout 中实现顶部栏滑动缩放效果时遇到的问题,即 RecyclerView 的曝光埋点不准。问题源于 RecyclerView 计算高度与用户实际可视区域不一致,AppBarLayout 的高度MeasureSpec被重定义。解决方案是通过循环检查 findFirstVisibleItemPosition 到 findLastVisibleItemPosition 之间的每个 item 是否在用户视野内。核心代码展示了如何修正此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

   Coordinatorlayout (协调者布局)与AppBarLayout 实现   topbar的收滑动缩放效果,

RecyclerView  监听滑动停止时 第一个跟最后一个可见的item 上报曝光埋点

(findFirstVisibleItemPosition  findLastVisibleItemPosition)

但上报的埋点数据与用户真实见到的item不符,曝光埋点失准。


问题原因

用户的可见视野区域高度(768)

 

RecyclerView 的计算高度 1104

 

分析源码AppBarLayout 重新定义了heightMeasureSpec  MeasureSpec刻度size 为 1653

 

界面真实边界是在手机屏幕下方

 

解决方案

findLastVisibleItemPosition的值    开始 递减循环到 findFirstVisibleItemPosition  ,依次重新判断item是否是用户可见的视野区域

viewpager.getY()+item.getY() 小于屏幕高度及认为是用户可见的区域

 

核新代码:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值