事件分发机制(简单了解)

事件分发我们首先要了解什么是事件分发:
事件分发是我们在操作屏幕点击,滑动,抬起时需要的一种机制,一般来说是在线程中进行事件分发的机制
简单的简述一下这张图所带来的信息:
首先当我们触摸屏幕的时候,会首先执行Activity的dispatchTouchEvent 这一步不管返回是true或false
都会执行当前的方法
我们继续往下走会执行ViewGroup的dispatchTouchEvent 当这个方法为true的时候我们会执行当前的方法,当这个方法为false的时候我们会返回到Activity的onToouchEvent
我们继续往下,会执行到ViewGroup的onInterceptTouchEvenet 当这个发方法为true的时候我们会执行ViewGroup的onToouchEvent 如果为false的话才会继续向下执行,如图所示

onTouch和onTouchEvent有什么区别,又该如何使用?

从源码中可以看出,这两个方法都是在View的dispatchTouchEvent中调用的,onTouch优先于onTouchEvent执行。如果在onTouch方法中通过返回true将事件消费掉,onTouchEvent将不会再执行。

什么是ViewGroup?它和普通的View有什么区别?
顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也是一个View,只不过比起View,它多了可以包含子View和定义布局参数的功能。ViewGroup继承结构示意图如下所示:

在这里插入图片描述
可以看到,我们平时项目里经常用到的各种布局,全都属于ViewGroup的子类。

好了,就了解了这么多,下面一幅图总结一下
在这里插入图片描述
感谢各位大佬的点赞和支持!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值