View和ViewGroup的事件分发机制详解
来源:互联网 发布:飞思卡尔单片机选型 编辑:程序博客网 时间:2024/05/22 09:04
下面先说View的事件分发,背景:
1.自定义MyButton控件继承自Button,在其中重写dispatchTouchEvent()和onTouchEvent()方法
2.编写xml布局文件,在主Activity中实例化控件MyButton,并在按钮上添加setOnTouchListener的监听事件,监听事件中会重写onTouch方法。
点击MyButton按钮,并稍微挪动一下,然后会看到执行顺序为:
dispatchTouchEvent() ---->setOnTouchListener的onTouch() ---------->onTouchEvent()
当设置了setOnTouchListener,并返回了true,那么MyButton的onTouchEvent就不会被执行
下面讲ViewGroup的事件分发机制,背景:
1.自定义MyLinearLayout继承自LinearLayout,在MyLinearLayout中重写dispatchTouchEvent(),onTouchEvent()和onInterceptTouchEvent()方法
2.在xml文件中让MyLinearLayout包含上面的MyButton控件,并将其显示在主Activity中
点击MyButton按钮,并稍微挪动一下,然后会看到执行顺序为:
MyLinearLayout的dispatchTouchEvent -> MyLinearLayout的onInterceptTouchEvent -> MyButton的dispatchTouchEvent ->Mybutton的onTouchEvent
当onInterceptTouchEvent 返回true时,子View的事件将被拦截,后续动作都不会被触发,ViewGroup的onTouchEvent被触发
没有拦截时,将交给子View处理,ViewGroup将不处理,ViewGroup的OnTouchEvent将不被触发
子View可以通过调用getParent().requestDisallowInterceptTouchEvent(true); 阻止ViewGroup对其MOVE或者UP事件进行拦截;
- View和ViewGroup的事件分发机制详解
- ViewGroup和View的事件分发机制
- Android ViewGroup/View 事件分发机制详解
- Andriod 详解View,ViewGroup的Touch事件的分发机制
- Android View 和 ViewGroup 事件分发机制
- ViewGroup与View的事件分发机制
- View和ViewGroup的事件分发总结
- View和ViewGroup的事件分发笔记
- android之View和ViewGroup事件分发机制分析(一)(View的事件分发机制)
- Android View 事件分发机制源码详解(ViewGroup篇)
- Android6.0 ViewGroup/View 事件分发机制详解
- Android6.0 ViewGroup/View 事件分发机制详解
- View和ViewGroup事件分发
- android中view 和 viewgroup事件分发机制
- Android View和ViewGroup事件分发机制源码分析
- Android View和ViewGroup事件分发机制源码分析
- Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
- Andriod 从源码的角度详解View,ViewGroup的Touch事件的分发机制
- 端到段、点到点通信的区别 优缺点
- Android UI设计——EditText控件
- ShapeDrawable做放大镜效果
- 快学Scala习题解答—第九章 文件和正则表达式
- 后端分布式系列:分布式存储-HDFS 架构解析
- View和ViewGroup的事件分发机制详解
- 黑马程序员--Java基础学习(面向对象)第七天
- 一个C++的平衡二叉树例子
- HPU 1707:求解不等式【SPFA & 差分约束】
- hdu 4372 第一类斯特林数
- 消息推送
- 基于循环链表的约瑟夫问题(八)
- 决策树算法——ID3算法,C4.5算法
- C++基础--string类的operator[]/at/back/front