首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

View的事件分发机制

Android View事件分发机制 ---- 当一个点击事件产生后,他的传递过程遵循Activity->Window->View的逐级传递。我们这里讨论的是在Android系统View里事件传递。...大家知道Android的View是由顶向下的树形结构,有点像HTML的DOM树,点击事件分发就是各层View和ViewGroup对MotionEvent的传递,最终传递到一个具体的View,由他来消费这个...MotionEvent.下面介绍事件分发三个重要的方法。...特别的一点是事件总是先传递给父元素,然后再有父元素分配给子元素,通过requestDisallowInterceptTouchEvent方法可以在子元素中干预父元素的除ACTION_DOWN外的事件分发过程...Android View事件机制 21问21答 Android View 事件分发机制源码解析(上) Android ViewGroup事件分发机制

40810

【说站】javascript事件冒泡是什么

javascript事件冒泡是什么 说明 1、事件冒泡即事件开始时由最具体的元素接收,然后逐级向上传播到较为不具体的节点。 2、事件冒泡是默认开启的,但可以通过js代码来控制事件冒泡。...特性 当触发我们的事件函数时,事件函数其实会接收到一个event对象,该对象上的stopPropagation()可以阻止事件冒泡。...当我们在我们的事件函数中执行event.stopPropagation()方法,那么事件冒泡到此就结束了。 并不是所有类型的事件都支持事件冒泡。 事件冒泡只会触发相同类型的事件函数。...实例 click me 如果你点击了页面中的元素,那么这个click事件会按照如下顺序传播: 1. 2. 3.... 4.document 以上就是javascript事件冒泡的介绍,希望对大家有所帮助。

57420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【说站】javascript事件委托是什么

    javascript事件委托是什么 说明 1、事件委托是指目标节点的事件被移动到父节点上进行处理,因为浏览器冒泡的特性,当该事件被目标节点触发时,父节点也会触发它。...所以这个父节点负责监听和处理这个事件。 2、使用事件委托,只需要监听列表项的父节点上的该事件,然后对其进行统一处理。...实例 function handleClick(target) {   // 点击列表项的处理事件 } function delegate (e) {   // 判断目标对象是否为列表项   if (e.target.nodeName...事件委托的介绍,希望对大家有所帮助。...更多Javascript学习指路:Javascript 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏

    35320

    【Android 事件分发】事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )

    Android 事件分发 系列文章目录 【Android 事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) 【Android...事件分发】事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup ) ---- 文章目录 Android...事件分发 系列文章目录 一、Activity 的事件传递 二、PhoneWindow 事件传递 三、DecorView 事件传递 四、ViewGroup 事件传递 一、Activity 的事件传递 -...界面中 , 会第一时间调用 dispatchTouchEvent 方法 , 然后会按照下图的层级 , 逐步向下分发触摸事件 ; Activity | dispatchTouchEvent 分析 :...DecorView 中的 superDispatchTouchEvent 中 , 调用父类的 superDispatchTouchEvent 方法 , 这里涉及到事件分发 superDispatchTouchEvent

    91620

    Android下的Touch事件分发详解

    在 Android 系统中,触摸事件的分发和处理是一个非常重要的部分。了解触摸事件的分发机制对于我们进行界面交互设计和优化具有重要意义。...本文将详细介绍 Android 下的 Touch 事件分发机制,包括事件分发的过程、涉及的方法以及 ViewGroup 中事件分发的实现。...二、触摸事件的三个关键方法 在 Android 系统中,触摸事件的分发过程涉及到三个重要的方法:dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent...这个过程涉及到了事件的分发、拦截和消费,是理解 Android 触摸事件分发机制的关键。...五、总结 通过本文的介绍,我们了解了 Android 下的 Touch 事件分发机制,包括事件分发的过程、涉及的方法以及 ViewGroup 中事件分发的实现。

    35310

    【说站】javascript事件捕获是什么意思

    javascript事件捕获是什么意思 说明 1、事件捕获是不太具体的DOM节点应该更早接收到事件,而最具体的节点应该最后接收到事。 2、事件捕获的用意在于事件到达预定目标之前捕获它。...在捕获中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: 元素的点击事件先触发 ,然后再触发元素的点击事件。..."); },false);               //新增事件捕获事件代码 parent.addEventListener("click",function(e){   console.log("..."); },false); 以上就是javascript事件捕获的意思,希望对大家有所帮助。...更多Javascript学习指路:Javascript 推荐操作环境:windows7系统、jquery3.2.1版本,DELL G3电脑。 收藏 | 0点赞 | 0打赏

    53250

    JavaScript的事件

    javascript与HTML之间的交互是通过事件实现的。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。...1) 事件流 描述的是从页面中接受事件的顺序 1. 事件冒泡 (IE事件流) 事件开始由最具体的元素接收,然后逐级向上传播到不具体的节点。...HTML事件处理程序 某个元素支持的每种事件,都可以使用一个与相应事件处理程序同名的HTML特性来指定。这个特性的值应该是能够执行的JavaScript代码。...="button" value="clickMe" onclick = "showMsg()"> javascript"> function showMsg(){...3)HTML与JavaScript代码紧密耦合。 2. DOM0级事件处理程序 通过javascript制定事件处理程序的传统方式,将一个函数赋值给一个事件处理程序属性。

    1.5K30

    View,ViewGroup的Touch事件的分发机制

    ViewGroup的事件分发机制 我们用手指去触摸Android手机屏幕,就会产生一个触摸事件,但是这个触摸事件在底层是怎么分发的呢?...设置为null, mMotionTarget是什么?...当然还可以通过重写View的onTouchEvent()方法来控制Touch事件的消费与否 我们在看57行的ACTION_DOWN, 新建一个CheckForTap,我们看看CheckForTap是什么...所以我们点击屏幕上面的TextView的事件分发流程是上图那个样子的,表示Activity的View都不消费ACTION_DOWN事件,所以就不能在触发ACTION_MOVE, ACTION_UP等事件了...()方法返回true)才会触发ACTION_MOVE,ACTION_UP的发生,如果某个ViewGroup拦截了Touch事件,则Touch事件交给ViewGroup处理 7.Touch事件的分发过程中

    1.2K70

    浅谈JavaScript的事件(事件类型)

    Web浏览器能够发生的事件有很多种类型,不同的事件类型有不同的事件信息。...DOM3级的事件类型主要包括:UI事件,用户与页面上的元素交互时触发;焦点事件,元素获得或失去焦点触发;鼠标事件,用户通过鼠标在页面上执行操作时触发;滚轮事件,使用鼠标滚轮时触发;文本事件,当在文档中输入文本时触发...,则在object上面触发;error事件,当发生JavaScript脚本错误时触发,当无法加载图像时,在img元素上触发,当无法加载嵌入内容时在object上触发,当框架无法加载时触发;select事件...当用户在页面上由一个元素移动到另一个元素事件触发的顺序为:focusout事件,在失去焦点的元素上触发;focusin事件,在获得焦点的元素上触发;blur事件,在失去焦点的元素上触发;focus事件,...  复合事件是DOM3级中新增加的一类事件,用于处理IME的输入序列。

    1.8K50

    浅谈JavaScript的事件(事件委托)

    需要事先为DOM对象指定事件处理程序,导致访问DOM的次数增多,会延迟整个页面的交互就绪时间。 事件委托   对事件处理程序过多的解决方案是使用事件委托。...事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。...ul1指定了事件处理程序,在我们单击li的时候通过事件冒泡也会触发该事件,并且能够通过target来获取当前单击的元素对象。...移除事件处理程序   前文已经讲过事件的添加以及事件的移除。对于页面的事件处理程序太多,会影响页面的性能,除了使用事件委托之外,还可以将一些事件移除。...内存中留有的一些过时的用不到的事件处理程序也是造成Web页面和内存性能的主要问题。

    1.1K70

    浅谈JavaScript的事件(事件对象)

    在触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含这所有与事件有关的信息。包括导致事件的元素、事件的类型和事件的相关信息。例如鼠标操作的事件中,会包含鼠标的位置信息。...而键盘触发的事件会包含与按下的键有关信息。所有浏览器都支持event对象,但支持方式不同。 DOM中的事件对象   兼容dom的浏览会将一个event对象传递到事件处理程序中。...只读 为true表示事件是浏览器生成,false表示JavaScript添加 type String 只读 被触发事件的类型 view AbstarctView 只读 与事件关联的抽象视图   上面的表格列出了...但是如果通过attachEvent添加事件,则事件处理程序会传递一个event对象。   IE的event对象同样包含创建它的相关属性和方法,与DOM事件一样,也会因为事件类型的不同而不同。...,取消事件的默认行为 srcElement Element 只读 事件的目标,与target相同   因为事件处理程序的指定方式不同,故它的作用域也不相同。

    1.2K60

    浅谈JavaScript的事件(事件流)

    事件流描述的是从页面中接收事件的顺序。IE的事件流失事件冒泡,而Netspace的事件流失事件捕获。...事件冒泡   IE的事件流叫事件冒泡,即事件开始时,由具体的元素(文档中嵌套层次最深的节点)接收,然后向上传播到不具体的节点。...事件捕获    事件捕获的思想是不太具体的节点先接收到事件,最具体的节点最后接收到事件。事件捕获的用意在于事件到达最终的节点前,就可以捕获。...首先发生的是事件捕获,为事件的截获提供了机会。然后是实际目标接收到事件。最后一个是事件冒泡阶段,可以在这这个阶段对事件作出响应。 ?   ...下一个阶段处于目标阶段,于是事件在div上面发生,并在事件处理中被看成事件冒泡阶段的一部分。最后事件冒泡发生,并将事件回传到document。ie8以及更早的浏览器不支持Dom事件流。

    86880

    浅谈JavaScript的事件(事件模拟)

    事件经常由操作或者通过浏览器功能触发,通过JavaScript也可以触发元素的事件。通过JavaScript触发事件,也称为事件的模拟。...模拟事件的最后一步是触发事件,触发事件使用dispatchEvent方法,所有支持DOM事件的节点都支持该方法。...,如true;view,事件关联的视图,一般是document.defaultView;detail,与事件有关的详细信息,通常设置为0;screenX,事件相对于屏幕的x坐标;screenY,事件相对于屏幕的...可以通过JavaScript代码模拟鼠标事件、键盘事件、HTML事件和变动事件。同时也可以模拟自定义事件。...第5行输出事件的类型为myevent,正是我们自定义的事件。   上面的创建模拟事件的方法在ie8以及ie8以下的浏览器中,并不支持。可以使用以下的代码来模拟事件。

    2K70

    白板类应用的业务事件分发模式

    在画板上延伸业务的事件,可以通过画板本身,利用路由事件分发,此时能解决依赖事件业务对具体业务对象的依赖 背景 先来聊聊白板应用的背景 基础的白板可以认为是有一个画板 Board 而在画板上面有很多纸张页面...而通过切换纸张 Slide 可以做到切换页面 多的我也不讲了,因为了解这个行业的小伙伴自然了解哈 那这里要聊的事件分发是什么呢?...简单的方法是将事件从笔功能去掉,将事件放在独立的模块 假设创建一个模块叫笔事件模块 public static class InkEvents { } 在笔事件模块里面定义了路由事件,表示笔的开始写和写完成的事件...而在事件定义的时候,注意路由事件最后一个参数写了是 typeof(Board) 使用的是画板的 这样的写法就类似给画板添加了一个事件,而不需要改动画板的功能 利用事件能作出的效果是在页面 Slide 里面触发路由事件...,路由事件会在视觉树上面一层层分发,在画板或画板的容器可以让业务去拿到这个路由事件 ?

    67930

    你需要掌握的事件分发高阶知识

    只了解View的事件分发是不够的,来看下输入系统对事件的处理 1.InputReader的加工类型 在只了解View的事件分发是不够的,来看下输入系统对事件的处理这篇文章中,我们知道InputReader...2.InputDispatcher的分发过程 不同的事件类型有着不同的分发过程,其中Swich事件的处理是没有派发过程的,在InputDispatcher的notifySwitch函数中会将Swich事件交由...本系列文章一直讲解key事件相关,这次换一下,以Motion事件的分发过程来进行举例,对key事件分发事件有兴趣的可以自行去看源码,本质上都差不多。...取出事件 如果没有待分发的事件,就从mInboundQueue中取出一个事件,如果mInboundQueue为空,并且没有待分发的事件,就return,如果mInboundQueue不为空,取队列头部的...后记 本文讲解了InputReader的加工类型和InputDispatcher的分发过程,由于文章篇幅的原因,InputDispatcher的分发过程还有一部分没有讲解,这一部分就是事件分发到目标窗口的过程

    1.3K30
    领券