魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
  1. 首页
  2. Android
  3. 正文

Android面试题19–Android事件分发机制

2018年3月8日 6928点热度 0人点赞 0条评论
Android 的事件分发流程:Activity -> ViewGroup -> View 即:1个点击事件发生后,事件先传到Activity、再传到ViewGroup、最终再传到 View。
如果事件不被中断,整个事件流向是一个类U型图,我们来看下这张图:

可以看出
  1. android的事件传递机制是责任链模式,如果自己能处理就拦截下来自己处理,如果自己处理不了或者不确定就传递给下一个对象。
  2. 事件处理方式:拦截、分发、消费
  3. 类型 相关方法 Activity ViewGroup View
    事件分发 dispatchTouchEvent 有 有 有
    事件拦截 onInterceptTouchEvent 无 有 无
    事件处理 onTouchEvent 有 有 有

    以上三个方法,均有boolean类型的返回值,通过设置true,false来控制事件传递的流程

    Activity和View均没有事件拦截方法,是因为

    1)、Activity作为事件响应起点,如果,Activity把事件拦截了,辣么将为导致整个屏幕都无法点击

    2)、View作为事件响应的最末端,要么消费事件,要么不处理回传,没必要拦截事件

 

 

 

标签: Android
最后更新:2018年3月8日

daozi

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
搜索
联系方式

QQ群:179730949
QQ群:114559024
欢迎您加入Android大家庭
本人QQ:136049925

赐我一丝安慰
给我一点鼓励

COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

豫ICP备15000477号