android view的事件传递机制学习笔记
2015-12-25 16:43
609 查看
1.view 中的dispatchTouchEvent方法返回值为 onTouchEvent(event);
2.dispatchTouchEvent方法调用了ontouch方法。 ontouch方法在view 中是OntouchListener接口的抽象方法。
3.dispatchTouchEvent 中的ontouch方法要优先于onTouchEvent(event); 执行。onclick在onTouchEvent(event); 中执行只要控件注册了onclicklistener,就会执行onclick方法(在该方法当中)。
4.当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回true,才会触发后一个action,层级传递的。
mOnTouchListener.onTouch(this, event)返回false 之后会调用onTouchEvent(event)方法,但onTouchEvent(event)方法可能会返回true(如何控件是enable的 则会返回为true而使整个方法返回ture如button, 反之亦然如textview)
疑问:哪些控件默认是enable的?哪些不是默认enable的?
5.注册了点击事件,该控件就是enable的了。所以textview注册了点击事件后,即时dispatchtouch方法返回为false, 他的down, move, up也 都会执行。
已知的: imageview不是, button是, textview不是。
onTouchEvent(event);
郭神的传递源码分析:
/article/1562152.html
1.view 中的dispatchTouchEvent方法返回值为 onTouchEvent(event);
2.dispatchTouchEvent方法调用了ontouch方法。 ontouch方法在view 中是OntouchListener接口的抽象方法。
3.dispatchTouchEvent 中的ontouch方法要优先于onTouchEvent(event); 执行。onclick在onTouchEvent(event); 中执行只要控件注册了onclicklistener,就会执行onclick方法(在该方法当中)。
4.当dispatchTouchEvent在进行事件分发的时候,只有前一个action返回true,才会触发后一个action,层级传递的。
mOnTouchListener.onTouch(this, event)返回false 之后会调用onTouchEvent(event)方法,但onTouchEvent(event)方法可能会返回true(如何控件是enable的 则会返回为true而使整个方法返回ture如button, 反之亦然如textview)
疑问:哪些控件默认是enable的?哪些不是默认enable的?
5.注册了点击事件,该控件就是enable的了。所以textview注册了点击事件后,即时dispatchtouch方法返回为false, 他的down, move, up也 都会执行。
已知的: imageview不是, button是, textview不是。
public boolean dispatchTouchEvent(MotionEvent event) { if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED && mOnTouchListener.onTouch(this, event)) { return true; } return onTouchEvent(event); }
条件1: 该view是否注册了点击事件, 注册了点击事件就为1
条件2: 该view是否是可点击的 enable = true;(疑问,注册了点击事件view就是enable的了吗?)
条件3: view的onTouch方法的返回值。
onTouchEvent(event);
该方法如果控件注册了点击事件的话,就会执行click方法。
郭神的传递源码分析:
/article/1562152.html
相关文章推荐
- android 添加前景色
- Android中零碎的问题
- Windows下简易Jenkins构建Android自动打包 - Ant
- Android 使用BroadcastReceiver的几种方法
- Android中callback(接口回调)机制
- android studio 新建工程一直显示resolve dependence
- 一张图片让你了解android的事件分发机制
- Android Studio简单设置
- Android Studio系列教程(一)
- Android EditText输入光标居于开头最开始位置
- Android Studio基础之编译JNI(七)-学习篇
- android bitmap 大小获取
- Android内存测试常用的几个概念
- Android中自带的rsa加密算法和java中的区别
- 从AndroidStudio(as)中导出apk
- Android开发 PathButton 简单实现
- android开源图表库
- Android中WebView的addJavascriptInterface混淆方法
- 百度地图定位功能
- android:改动PagerTabStrip中的背景颜色,标题字体的样式、颜色和图标以及指示条的颜色