作家
登录

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

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

return true
  •     }  
  •     return false
  •  
  • 媒介

    2、onInterceptTouchEvent感化:拦截事宜,用来决定事宜是否传向子View

    在android开辟中会经常碰到滑动冲突(比如ScrollView或是SliddingMenu与ListView的嵌套)的问题,须要我们深刻的懂得android事宜响应机制才能解决,事宜响应机制已经是android开辟者必弗成少的常识。面试找工作的时刻也是面试官经常会问的一个问题。

    涉及到事宜响应的常用办法构成

    用户在手指与屏幕接触过程中经由过程MotionEvent对象产生一系列事宜,它有四种状况:

    • MotionEvent.ACTION_DOWN:手指按下屏幕的刹时(一切事宜的开端)
    • MotionEvent.ACTION_MOVE:手指在屏幕上移动
    • MotionEvent.ACTION_UP:手指分开屏幕刹时
    • MotionEvent.ACTION_CANCEL :撤消手势,一般由法度榜样产生,不会由用户产生

    Android中的事宜onClick,>

    View源码分析

    Android中ImageView、textView、Button等持续于View但没有重写的dispatchTouchEvent办法,所以都用的View的该办法进行事宜分发。

    看View重要函数部分源码:

    1. public boolean dispatchTouchEvent(MotionEvent event) { 
    2.       //返回true,表示该View内部消化掉落了所有事宜。返回false,表示View内部只处理了ACTION_DOWN事宜,事宜持续传递,向上级View(ViewGroup)传递。 
    3.     if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED && 
    4.             mOnTouchListener.onTouch(this, event)) {   
    5.              //此处的onTouch方法就是回调的我们注册OnTouchListener时重写的onTouch()办法 
    6.          return true
    7.     }    return onTouchEvent(event); 
    8.  

    起首进行三个前提的断定:

    (2)控件是否Enable;(控件默认都是enable的)

    (3)button琅绫擎实现的OnTouchListener监听里的onTouch()办法是否返回true;

    如不雅前提都知足,则该事宜被消费掉落,不再进入onTouchEvent中处理。不然将事宜将交给onTouchEvent办法处理。

    1. public boolean performClick() { 
    2.     ... 
    3.  //    if (li != null && li.mOnClickListener != null) { 
    4.         ... 
    5.         li.mOnClickListener.onClick(this);         
    6.             return true
    7.     }  
    8.     return false
    9.  
    1. public void setOnClickListener(OnClickListener l) { if (!isClickable()) { 
    2.  
    3. setClickable(true); 
    4.  

        推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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