史上最好记的事件分发机制

来源:互联网 发布:数据库培训中心 编辑:程序博客网 时间:2024/06/05 09:27

首先是事件分发的几个背景:

背景1:传递函数: dispatchTouchEvent。用于传递事件,本函数被定义在View中,ViewGroup重写了该函数。

背景2:拦截函数:onInterceptTouchEvent。用于拦截事件,本函数被定义在ViewGroup中。

背景3:消费函数1:onTouch。用于传递过来的事件消费掉,本函数是OnTouchLisener里面的需要被重写的函数。
背景4:消费函数2:onTouchEvent。同用于消费事件,

本函数被定义于View中,比onTouch晚执行一步,可能不会执行。

总结:

1.onClick在onTouch之后调用2.onTouch默认flase3.一般情况,事件是先传到最底层的子view,若子View不可点击,单机,长按则将事件返回给上一层,否则事件消耗。或者将onTouch指定为true,将事件消耗。

对于事件分发机制,小编觉得如果想深入了解,可以多看看源码,如果只需要应对面试的话,就记住三个基本的方法是何时调用就行了,但是以后肯定还是需要深究的

(更多精彩内容,请看微信公众号“动脑学院”)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 游戏全屏时卡了无法退到界面怎么办 u盘插电脑上提示有病毒怎么办 三星手机文件怎么删除不掉怎么办 用夜神模拟器玩第五人格太卡怎么办 雷电模拟器玩刺激战场太卡了怎么办 绝地求生刺激战场模拟器太卡怎么办 ddj sb2打碟功能没了怎么办 驼背怎么办 要能快速矫正的方法 苹果7中间的home键坏了怎么办 苹果6p的home键不管用怎么办 华为获取数据失败请检查网络怎么办 三星手机未解锁刷机变砖怎么办 手机显示充电但是充不进去怎么办 手机拔出显示无法连接移动网怎么办 手机上的音乐老是显示网络忙怎么办 华为手机账号换手机忘记密码怎么办 墨墨背单词的注册邮箱忘了怎么办 华为手机华为账号密码忘记了怎么办 手机玩游戏降频特别厉害怎么办 苹果应用商店id登录老卡怎么办 苹果id忘记了自动续费怎么办 红米手机小米账号密码忘了怎么办 小米5splus没系统卡米怎么办 注册谷歌账号输入手机好怎么办 谷歌注册电话号码用了太多次怎么办 内存卡用了深度清理的软件怎么办 华为畅享5s密码忘了怎么办 小米5s进水了一直开机关机怎么办 手机菜单键功能键返回键失灵怎么办 小米5s更新系统发热严重怎么办 小米手机4G网速不好怎么办力 红米5 plus开不开机怎么办 小米3s手机触屏部分失灵怎么办 魅族手机屏幕锁密码忘了怎么办 手机没设置魅族账号密码忘了怎么办 魅族手机格式化密码忘了怎么办 魅族手机忘记密码了怎么解锁怎么办 手机设置的应用加密忘记密码怎么办 手机上设置应用加密忘记密码怎么办 魅蓝flyme密码忘了怎么办图片 魅族手机经常自动账号锁屏怎么办