安卓界面点击事件分发流程(Activity,ViewGroup,View)

先上一个正常情况下的分发流程。

可以看到,事件从Activity dispatchTouchEvent方法出发到Activity onTouchEvent方法,呈现一个U型的图。

下面我们分析每个事件返回true、false会造成的影响。

1.onInterceptEvent方法的意思就是拦截事件。默认为false,表示不拦截事件。true表示拦截事件,不会分发给下层,执行自己的onTouchEvent方法。

例如:在ViewGroup层的onInterceptEvent方法,返回true,不会分发给View并执行自己的onTouchEvent方法,返回false,继续分发给View的dispatchTouchEvent方法。

2.ouTouchEvent方法的意思是触摸事件处理。true代表自己处理事件,就不会继续调用上层的onTouchEvent。false(同super.onTouchEvent(ev))代表不处理事件,会继续调用上层onTouchEvent。

例如:在ViewGroup层的onTouchEvent方法中,返回true,则不会调用Activity的onTouchEvent方法。返回false,则会调用Activity的onTouchEvent方法。

3.dispatchTouchEvent方法一般不会去重写,因为该方法的返回是由onInterceptEvent,ouTouchEvent和子类的dispatchTouchEvent方法决定的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值