您当前的位置: 首页 >  android

命运之手

暂无认证

  • 6浏览

    0关注

    747博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Android】【事件分发处理机制】事件分发处理机制

命运之手 发布时间:2018-06-07 16:02:04 ,浏览量:6

  1. TouchEvent分发处理流程: 一般步骤:dispatchTouchEvent(传递),onInterceptTouchEvent(拦截,只有ViewGroup有这个方法),onTouchEvent(处理) Activity.dispatchTouchEvent –> ViewGroup.dispatchTouchEvent –> View.dispatchTouchEvent –> ViewGroup.onInterceptTouchEvent –> ViewGroup/View.onTouchEvent –> Activity.onTouchEvent
  2. ViewGroup内部分发流程: ViewGroup.dispatchTouchEvent – View.dispatchTouchEvent - ViewGroup.onInterceptTouchEvent 如果拦截 – 不向子View传递事件 – ViewGroup.onTouchEvent 如果不拦截 – 传递给子View – View.onTouchEvent
  3. View内部分发流程: View.dispatchTouchEvent – View.onTouchEvent 如果View.onTouchEvent返回true – 不再往下传递 – 结束 如果View.onTouchEvent返回false – Activity.onTouchEvent – 结束
  4. OnClick事件 onTouchEvent返回true时,onClick监听器不会被执行的 onClick会消耗Event,执行了onClick后,Activity就无法再收到Event
  5. 事件冲突解决方案 重写子View的dispatchTouchEvent方法,通过getParent.requestDisallowIntercept来告诉父容器,是否要拦截事件 重写ViewGroup的onInterceptTouchEvent方法,来决定是否拦截事件
关注
打赏
1654938663
查看更多评论
立即登录/注册

微信扫码登录

0.3150s