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

网站视图错位微信小程序个人中心制作

网站视图错位,微信小程序个人中心制作,汕头关键词优化平台,wordpress编辑器增加#来自ウルトラマンゼロ#xff08;哉阿斯#xff09; 1 Activity 构成 平常布局展示在ContentView中。 2 事件分发 事件分发的本质其实就是把事件#xff08;Touch#xff09;封装成 MotionEvent 类#xff0c;然后传递给 View 的层级处理。 MotionEvent 事件类型主要有…#来自ウルトラマンゼロ哉阿斯 1 Activity 构成 平常布局展示在ContentView中。 2 事件分发 事件分发的本质其实就是把事件Touch封装成 MotionEvent 类然后传递给 View 的层级处理。 MotionEvent 事件类型主要有下面四种 MotionEvent.ACTION_DOWN按下事件事件开始MotionEvent.ACTION_UP抬起事件与 DOWN 对应MotionEvent.ACTION_MOVE移动事件MotionEvent.ACTION_CANCEL结束事件 事件分发由三个方法协作完成 dispatchTouchEvent()事件分发onTouchEvent()消费事件、在 dispatchTouchEvent() 中调用onInterceptTouchEvent()拦截事件、只有 ViewGroup 有、在 dispatchTouchEvent() 中调用 3 dispatchTouchEvent() 主要是负责分发是安卓事件分发过程中的核心。 返回 TRUE则表明对事件已经处理不用继续调用其余组件的分发方法即停止分发。返回 FALSE则表明对事件不能处理需要按照规则继续分发事件在不复写该方法的情况下除了一些特殊的组件其余组件都是默认返回 False。 3.1 Activity#dispatchTouchEvent() 可以用以下伪代码说明 public boolean dispatchTouchEvent(MotionEvent ev) {if (child.dispatchTouchEvent(ev)) {return true;//子 View 消费事件,返回 TRUE让调用者知道该事件已被消费} else {return onTouchEvent(ev);//子 View 没有消费事件调用自身的 onTouchEvent} } 事件经过传递后事件被消费了返回 TRUE则 Activity 的分发方法也返回 TRUE表示该事件已经被消费了。事件经过传递后事件没有被消费返回 FALSE则 Activity 调用 onTouchEvent() 去处理。onTouchEvent 消费事件返回 TRUE表示已消费事件并作为 dispatchTouchEvent() 的返回值让调用它的对象知道 Activity 消费事件。onTouchEvent 没有消费事件返回 FALSE表示未消费事件并作为 dispatchTouchEvent() 的返回值。让调用它的对象知道该 Activity 没有消费事件需要继续处理。 3.2 ViewGroup#dispatchTouchEvent() public boolean dispatchTouchEvent(MotionEvent ev) {if (!onInterceptTouchEvent(ev)) {return child.dispatchTouchEvent(ev);//不拦截则传给子 View 进行分发处理} else {return onTouchEvent(ev);//拦截事件交由自身 onTouchEvent 方法处理} } 返回 FALSE不拦截则交给子 View 去调用 dispatchTouchEvent() 方法返回 TRUE拦截则调用 ViewGroup 对象 onTouchEvent(ev) 方法处理。 3.3 View#dispatchTouchEvent() public boolean dispatchTouchEvent(MotionEvent ev) {//listener 不为空调用 onTouch方法if (mOnTouchListener ! null mOnTouchListener.onTouch(this, event)) {return true;//若onTouch方法返回TRUE消费事件则 dispachtouTouchEvent返回 TRUE让其调用者知道该事件已被消费可见 setOnTouchListener 优先级比较高。}return onTouchEvent(ev);//没有消费事件则调用对象自身的 onTouchEvent() 处理。 } onTouch() 返回 TRUE则 dispatchTouchEvent 也会返回TRUE表示消费该事件。onTouch() 返回 FALSE或者 mOnTouchListener 为空调用自身的 onTouchEvent() 处理是否消费事件可以由其返回值判断。 4 onInterceptTouchEvent 该方法是 ViewGroup 独有的对事件进行提前拦截。一般情况下该方法是默认返回 FALSE表示不拦截。 如果自定义 ViewGroup 希望拦截事件不希望事件传递可以覆写该方法返回 TRUE即可阻止向下的传播过程。 子 View 也可以通过 requestDisallowInterceptTouchEvent 来设置 FLAG_DISALLOW_INTERCEPT 标志位禁止 ViewGroup 拦截除了 DOWN 之外的事件。 返回 TRUE则会将事件拦截自身的 onTouchEvent 处理。 返回 FALSE则继续传递给子 View 执行分发流程。 5 onTouchEvent 对事件进行处理。 返回 TRUE 表示已经处理了事件返回 FALSE 表示没有对事件进行处理需要继续传递事件。一般情况下默认为 FALSE。在 View 的onTouchEvent 方法中如果设置了 setOnClickListenter、setOnLongClickListene 处理返回 TRUE。 6 总结 当事件产生之后传递顺序Activity - PhoneWindow - 顶层 ViewGroup事件传递中一般考虑 ViewGroup 的 onInterceptTouchEvent()一般情况下我们不会重写 dispatchTouchEvent()。对于根 ViewGroup事件首先传递到 dispatchTouchEvent(): onInterceptTouchEvent() - TRUE则表示拦截事件这个事件就由 onTouchEvent()onInterceptTouchEvent() - FALSE则表示不拦截事件这个事件会交给它的子 View dispatchTouchEvent()如果事件传递到底层的 ViewView 是没有子View的就会调用 View 的 dispatchTouchEvent()通常情况下会调用 View 的 onTouchEvent() 处理事件。
http://www.w-s-a.com/news/989988/

相关文章:

  • 苏州制作网站的公司哪家好wordpress google搜索
  • c语言做项目网站wordpress博客被书为什么还
  • 企业建站用什么系统网站建设补充协议模板
  • 常州网站关键字优化淘客网站怎么做排名
  • 全flash网站制作教程网站做进一步优化
  • 建设网站步骤是如何做自媒体和网站签约赚点击
  • 网站建设的闪光点网站 备案 拍照
  • 那些企业需要做网站九洲建设集团网站
  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份
  • 吉林省建设安全监督站网站wordpress 4.7.5下载
  • 网页制作视频的网站建设营销策划公司
  • 玉雕网站建设八点品牌设计公司招聘
  • 服务器可以自己的网站吗flash 网站 源码
  • 湖南做网站 搜搜磐石网络网站注册收入
  • 北京软件网站开发装修设计培训机构
  • 哪个网站能帮助做路书网站建设的技巧
  • 上海网站备案在哪里在国外怎么做网站
  • 做网站得花多钱乡村振兴网站建设
  • 站设计培训课程wordpress自动回复
  • 上海闵行区 网站建设永久免费crm软件下载
  • 天津营销网站建设公司排名台州网站排名公司
  • 环保网站 怎么做物流网站的功能与特色
  • 网站多久才会被收录服务器租用泰海
  • 电商网站建设合同模板临汾推广型网站建设
  • 天猫商务网站建设目的长春网站设计
  • 公司网站建设会议纪要昆山高端网站建设机构
  • 做消费网站流程深圳网站设计价格