当前位置: 首页 > news >正文

拖拽式网站建设费用微网站怎么做的好名字

拖拽式网站建设费用,微网站怎么做的好名字,在家办厂小型加工项目,十堰seo推广文章目录 一、事件传递路径二、触摸事件的三个关键方法2.1 dispatchTouchEvent(MotionEvent ev)2.2 onInterceptTouchEvent(MotionEvent ev)2.3 onTouchEvent(MotionEvent event) 三、ViewGroup中的dispatchTouchEvent实现四、总结 在Android系统中#xff0c;触摸事件的分发和… 文章目录 一、事件传递路径二、触摸事件的三个关键方法2.1 dispatchTouchEvent(MotionEvent ev)2.2 onInterceptTouchEvent(MotionEvent ev)2.3 onTouchEvent(MotionEvent event) 三、ViewGroup中的dispatchTouchEvent实现四、总结 在Android系统中触摸事件的分发和处理是一个非常重要的部分。了解触摸事件的分发机制对于我们进行界面交互设计和优化具有重要意义。本文将详细介绍Android下的Touch事件分发机制包括事件分发的过程、涉及的方法以及ViewGroup中事件分发的实现。 一、事件传递路径 触摸事件的传递路径是从Activity到Window再到View。具体来说当一个触摸事件产生时首先会传递给Activity的dispatchTouchEvent方法然后由Activity将事件传递给Window最后由Window将事件传递给顶层的View。在View层级结构中事件会从上到下父View到子View进行传递直到有一个View能够处理这个事件为止。 二、触摸事件的三个关键方法 在Android系统中触摸事件的分发过程涉及到三个重要的方法dispatchTouchEvent(MotionEvent ev)、onInterceptTouchEvent(MotionEvent ev)和onTouchEvent(MotionEvent ev)。下面我们分别来看一下这三个方法在ViewGroup和Activity中的作用。 2.1 dispatchTouchEvent(MotionEvent ev) 此方法用来分发事件。如果当前事件能传递到该View该方法一定会被调用。当Touch事件发生时Activity的dispatchTouchEvent(MotionEvent ev)方法会以隧道方式将事件传递给最外层View的dispatchTouchEvent(MotionEvent ev)方法并由该View的dispatchTouchEvent(MotionEvent ev)方法对事件进行分发。 2.2 onInterceptTouchEvent(MotionEvent ev) 此方法用来拦截事件。如果返回值为true表示拦截否则不拦截。在外层View的dispatchTouchEvent(MotionEvent ev)方法返回系统默认的super.dispatchTouchEvent(ev)情况下事件会自动的分发给当前View的onInterceptTouchEvent方法。 2.3 onTouchEvent(MotionEvent event) 此方法用于处理当前事件。如果返回值为true表示消耗该事件否则无法再接收同一个序列的事件。如果dispatchTouchEvent方法return false事件会以冒泡方式返回给上层的onTouchEvent进行消费。 三、ViewGroup中的dispatchTouchEvent实现 在Android系统中ViewGroup对dispatchTouchEvent方法进行了重载以实现更复杂的事件分发逻辑。以下是一些关键的代码片段 public boolean dispatchTouchEvent(MotionEvent ev) {boolean handled false;// 调用onInterceptTouchEvent方法来判断是否需要拦截当前的触摸事件if (onInterceptTouchEvent(ev)) {// 如果需要拦截就会将事件的动作设置为ACTION_CANCEL并清除所有的触摸目标。ev.setAction(MotionEvent.ACTION_CANCEL);if (mFirstTouchTarget ! null) {removePointersFromTouchTargets(0);}handled true;} else {// 如果没有触摸目标就会调用onTouchEvent方法来处理事件if (mFirstTouchTarget null) {handled onTouchEvent(ev);} else {// 如果有触摸目标就会遍历所有的触摸目标调用dispatchTransformedTouchEvent方法来分发事件。TouchTarget target mFirstTouchTarget;while (target ! null) {TouchTarget next target.next;if (dispatchTransformedTouchEvent(ev, false, target.child, target.pointerIdBits)) {handled true;}target next;}}}return handled; }首先onInterceptTouchEvent方法被调用用于判断当前ViewGroup是否要拦截这个触摸事件。如果onInterceptTouchEvent返回true那么这个触摸事件将会被拦截不再向下传递同时触摸事件的action将会被设置为ACTION_CANCEL表示这个触摸事件被取消。 然后如果没有拦截触摸事件那么会检查是否有触摸目标mFirstTouchTarget。如果没有触摸目标那么会直接调用onTouchEvent方法来处理这个触摸事件。如果有触摸目标那么会遍历所有的触摸目标并调用dispatchTransformedTouchEvent方法来分发触摸事件。这个过程会一直进行直到找到能够处理这个触摸事件的View为止。 总的来说ViewGroup的dispatchTouchEvent方法通过调用onInterceptTouchEvent和onTouchEvent方法实现了触摸事件的拦截和处理。这个过程涉及到了事件的分发、拦截和消费是理解Android触摸事件分发机制的关键。 四、总结 通过本文的介绍我们了解了Android下的Touch事件分发机制包括事件分发的过程、涉及的方法以及ViewGroup中事件分发的实现。掌握这些知识点可以帮助我们更好地进行事件处理和控件开发提高应用的用户体验。
http://www.w-s-a.com/news/493577/

相关文章:

  • 长沙电信网站备案谷歌推广怎么做最有效
  • 网站建设与管理总结报告华为开发者联盟
  • 门诊部网站建设天空建筑网站
  • 扬州市城乡建设网站高端品牌鞋子有哪些牌子
  • 杭州网站建设招聘网长沙网络销售公司
  • 网站制作一年多少钱免费做电子章网站
  • 信誉好的营销网站建设徐州市铜山新区建设局网站
  • 建行网站关于我们山西seo和网络推广
  • 1m带宽做网站怎么样深圳网站建设制作开发公司
  • 网站建设 服务内容 费用郴州网站建设公司哪里有
  • 网站关键词重要性育才网站建设
  • 网络安全形势下怎么建设学校网站wordpress最新主题下载
  • 自己建设网站需要什么条件.gs域名做网站怎么样
  • 网上做公益的网站推广手机卡返佣平台
  • 网站是公司域名是个人可以南京建设银行官方网站
  • 做互联网网站的会抓百度网盟推广 网站
  • 商务网站开发设计结论微信报名小程序怎么制作
  • 网站建设销售简历wordpress七比2
  • 制作网站报价工程项目查询哪个网站
  • 深圳移动网站建设制作公司网站建设的认识
  • 网站建设脚本语言有哪些想开网店哪个平台好
  • 视频网站用什么做的好深圳的小程序开发公司
  • 南京网站定制开发商城网站免费模板
  • 青海学会网站建设公司照片组合拼图
  • 中国建设银行福清分行网站爱站网权重查询
  • 外贸通网站建设网站建设7个主要流程图
  • 元气森林网络营销方式医疗网站优化怎么做
  • 手机网站制作报价表做网站公司做网站公司
  • 湖州网站设计吉林网站建设哪家好
  • 做存储各种环境信息的网站使用tag的网站