作家
登录

一篇文章彻底搞懂Android事件分发机制

作者: 来源: 2017-07-21 09:11:30 阅读 我要评论

        //如不雅是ACTION_UP或者ACTION_CANCEL, 将disallowIntercept设置为默认的false   
  •         //假如我们调用了requestDisallowInterceptTouchEvent()办法来设置disallowIntercept为true   
  •         //当我们抬起手指或者撤消Touch事宜的时刻要将disallowIntercept重置为false   
  •         //所以说膳绫擎的disallowIntercept默认在我们每次ACTION_DOWN的时刻都是false   
  •            mGroupFlags &= ~FLAG_DISALLOW_INTERCEPT;   
  •        }   
  •    
  •        // The event wasn't an ACTION_DOWN, dispatch it to our target if   
  •        // we have one.   
  •        final View target = mMotionTarget;   
  •        //mMotionTarget为null意味着没有找到花费Touch事宜的View, 所以我们须要调用ViewGroup父类的   
  •        //dispatchTouchEvent()办法,也就是View的dispatchTouchEvent()办法   
  •        if (target == null) {   
  •            // We don't have a target, this means we're handling the   
  •            // event as a regular view.   
  •            ev.setLocation(xf, yf);   
  •            if ((mPrivateFlags & CANCEL_NEXT_UP_EVENT) != 0) {   
  •                ev.setAction(MotionEvent.ACTION_CANCEL);   
  •                mPrivateFlags &= ~CANCEL_NEXT_UP_EVENT;   
  •            }   
  •            return super.dispatchTouchEvent(ev);   
  •        }   
  •    
  •        //这个if琅绫擎的代码ACTION_DOWN不会履行,只有ACTION_MOVE   
  •        //ACTION_UP才会走到这里, 假如在ACTION_MOVE或者ACTION_UP拦截的   
  •        //Touch事宜, 将ACTION_CANCEL派发给target,然后直接返回true   
  •        //表示花费了此Touch事宜   
  •        if (!disallowIntercept && onInterceptTouchEvent(ev)) {   
  •            final float xc = scrolledXFloat - (float

      推荐阅读

      AgentWeb是基于Android WebView一个功能完善小型浏览器库

    【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! Android 端AgentWeb 介绍AgentWeb是一个高度封装的 Android WebView ,简单易用 , 带有进度条 、 支撑文>>>详细阅读


    本文标题:一篇文章彻底搞懂Android事件分发机制

    地址:http://www.17bianji.com/lsqh/36325.html

  • 关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)