View绘制及事件分发机制
来源:互联网 发布:学美妆软件 编辑:程序博客网 时间:2024/06/09 21:10
View绘制及事件分发机制
view绘制机制
measure()–>onMeasure();
layout()–>onLayout();
draw():
1、绘制自己background.draw(canvas);
2、绘制自己(onDraw);
3、绘制children(dispatchDraw);
4、绘制服饰(onDrawScrollBars)
view分发机制:
主要由3个函数组成:
dispatchTouchEvent():进行事件分发;
onInterceptTouchEvent():用于事件拦截;
onTouchEvent():处理具体的事件,类似于OnTouchListener、OnClickListener
具体的逻辑如下:
public boolean dispatchTouchEvent(MotionEvent ev){ //默认为false boolean consume = false; //这是ViewGroup的流程,如果为View则省略了onInterceptTouchEvent()方法 if(onInterceptTouchEvent(ev)){ consume = onTouchEvent(ev); } else { consume = child.dispatchTouchEvent(ev); } return consume; }
滑动冲突
1、外部拦截:
顾名思义是在父容器中,更改onInterceptTouchEvent()方法,
2、内部拦截:
父容器不拦截任何事件,所有的事件都传递给子元素,如果子元素需要此事件就直接消耗掉,否则交由父容器进行处理,意思是需要更改子元素的dispatchTouchEvent()以及父元素的onInterceptTouchEvent()。
阅读全文
0 0
- View绘制及事件分发机制
- View绘制流程和事件分发机制文章汇总
- Android View 与ViewGroup绘制即事件分发机制
- view 事件分发机制
- View 事件分发机制
- View事件分发机制
- view事件分发机制
- View事件分发机制
- view事件分发机制
- view事件分发机制
- view事件分发机制
- View事件分发机制
- View 事件分发机制
- View事件分发机制
- View事件分发机制
- view 事件分发机制
- View事件分发机制
- View事件分发机制
- 7、不一样的C++系列--C++类型转换
- [paper] Look Into Person
- 关于Web服务器的认识
- 楼层丢鸡蛋问题
- Linux /根目录下子目录的存放内容
- View绘制及事件分发机制
- JAVA基础知识大纲-初级工程师必须知道的35个知识点
- Java中循环删除list中的元素
- hbase常用工具
- MySQL logrotate配置
- Scala类的注意点
- C++ 线性表模板的使用
- 什么是死锁及死锁的必要条件和解决方法
- boost——windows下VS2013update5编译boost库