Android触摸事件的分发拦截机制总结

Android触摸事件的分发拦截机制总结

ID:43706213

大小:183.06 KB

页数:43页

时间:2019-10-13

Android触摸事件的分发拦截机制总结_第1页
Android触摸事件的分发拦截机制总结_第2页
Android触摸事件的分发拦截机制总结_第3页
Android触摸事件的分发拦截机制总结_第4页
Android触摸事件的分发拦截机制总结_第5页
资源描述:

《Android触摸事件的分发拦截机制总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Android触摸事件分发拦截机制总结Android提供了强大的事件处理机制,包括两套事件处理机制:基于监听的事件处理,基于回调的事件处理。本文重点要说的事件分发拦截机制就是回调事件的处理机制中的其中一个知识。分发拦截事件的处理机制也是也是一个比较难理解或者不容易记住的知识。学习这个事件处理机制之前,我还是先把我个人对于这个比较疑难杂症的学习方法对大家说一下,希望对大家学习有一些帮助。就这个事件分发拦截机制来说,我之前看了很多别人网上的资料,博客,虽然能有一些收获,但是我一直都没能去很深刻理解完全,对于事件分发、事件拦截

2、,它们这两个回调方法,这个都是很多人知道的,但是它们有什么区别,又有什么联系?我看完它们的总结后思路是有些混乱的,有些网上的资料写的也是并不完全正确或准确的,那这个时候我们又该怎样去学习,或应该怎样去对待这个知识点?我是从这几个方面思考的:1)这个知识点有没有应用的场合,如果没有,那么肯定是没有必要去学习的,如果有应用的场合,那么它的应用场合是什么,比如这里事件分成机制可以让界面中的父布局或子布局在某些情况下,失去屏幕控制的效果。2)这个知识点涉及到的一些方法,比如这事件触摸涉及到三个方法:事件分发方法,事件拦截方法,事

3、件处理方法;我们要知道这三个方法的作用。3)我们要知道涉及到的这三个方法在改变参数/返回值后,实际效果会发生怎样的变化,这就需要我们动手去试试,并把它记录下来,进行对比,你就可以得出结论。很多东西,如果你不动手试试,你是会存在一些特殊的疑问的。所以动手是彻底消除疑虑最好方法。下面我来详细介绍Android的事件分发拦截处理机制。也许你看完了我的总结,也不一定能对android事件的分发和拦截有很深的理解,也是很正常的,因为每一个人的想法都是不一样的,但是你能认识到我讲解的程序中的实现功能,或它的实现效果其实就已经够了,我

4、们学习知识不就是能得到些许应用吗,其他的管那么多干嘛,呵呵!一.相关概念不管是桌面应用还是手机应用程序,需要为用户的动作提供响应,这种为用户动作提供响应的机制就是事件处理。Touch事件处理中的分发拦截机制中有三个方法是必须要知道和理解的:dispatchTouchEvent(MotionEventev)>onlnterceptTouchEvent(MotionEventev)、onTouchEvent(MotionEventev);能够响应这些方法的控件包括:ViewGroup及其子类、Activity。方法与控件的对

5、应关系如下表所示:方法功能ViewGroupActivity事件分发YesYes事件拦截YesNo事件响应YesYesTouch事件相关方法publicbooleandispatchTouchEvent(MotionEventev)publicbooleanonlnterceptTouchEvent(MotionEventev)publicbooleanonTouchEvent(IVIotionEventev)、Touch事件分析(一)事件分发:publicbooleandispatchTouchEvent(Motion

6、Eventev)Touch事件发生时Activity的dispatchTouchEvent(MotionEventev)方法会以隧道方式(从根元素依次往下传递直到最内层子元素或在中间某一元素中rti于某一条件停止传递)将事件传递给最外层View的dispatchTouchEvent(MotionEventev)方法,并由该View的dispatchTouchEvent(MotionEvent.ev)方法对事件进行分发。dispatchTouchEvent的事件分发逻辑如下:1.如果returntrue,事件会分发给当前V

7、iew并由dispatchTouchEvent方法进行消费,同时事件会停止向下传递;2.如果returnfalse,事件分发分为两种情况:1)如果当前View获取的事件直接来自Activity,贝!I会将事件返回给Activity的onTouchEvent进彳亍消费;2)如果当前View获取的事件来自外层父控件,则会将事件返回给父View的onTouchEvent进行消费。3.如果返回系统默认的super.dispatchTouchEvent(ev),事件会自动的分发给当前View的onInterceptTouchEve

8、nt方法。(二)事件拦截:publicbooleanonIntcrcoptTouchEvcnt(MotionEventev)在外层View的dispatchTouchEvent(MotionEventev)方法返回系统默认的super.dispatchTouchEvent(ev)情况下,事件会自动的分发给当前View

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。