android view 曝光,安卓View点击/曝光的监听方式

本文介绍了如何在Android中统一管理和监听View的点击与曝光事件。通过创建自定义的TrackerViewGroup,结合GestureDetector监听滑动和Fling行为,实现视图曝光的精确控制。同时,利用AccessibilityDelegate监听点击事件,并通过View.setTag绑定数据。文章还提供了遍历View进行曝光和点击事件处理的方法,以及优化性能的建议。
摘要由CSDN通过智能技术生成

Android点击、曝光事件的监听分散在代码的各个角落, 不利于开发维护。

其实可以将这2种行为收敛到一起, 运行时监听Activity的生命周期,即ActivityLifeCallBack回调; 在onResume或onStart函数里判断当前acitivity是否添加了自定义ViewGroup(暂且命名为TrackerViewGroup), 如果未添加则添加;

在onDestory函数中移除该自定义View, 即其父View调用removeView。

一、触发曝光的方法

添加一层ViewGroup目的是监听滑动事件和View显示状态变更; 从而将曝光埋点的触发时机收敛到自定义View中。

c41c1d680bba4e30ee05f91ba9813d09.png

1、activity切换前台会执行dispatchWindowFocusChanged函数;

2、手指在屏幕上滑动时dispatchToutchEvent函数里监听ACTION_MOVE, 并触发检索当前视图曝光流程, 每次只曝光差异View(从可见到不可见)并刷新缓存为当前可见view;

3、实现GestureDector的目的是监听Fling行为;

4、当子View变化时,例如ListView/RecyclerView滑入滑出item, 当前视图中的TextView执行setText操作也会触发父容器的onLayout。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值