事件分发相关
1、事件分发流程
- ViewGroup的事件分发
// 点击事件产生后,会直接调用dispatchTouchEvent()方法
public boolean dispatchTouchEvent(MotionEvent ev) {
//代表是否消耗事件
boolean consume = false;
if (onInterceptTouchEvent(ev)) {
//如果onInterceptTouchEvent()返回true则代表当前View拦截了点击事件
//则该点击事件则会交给当前View进行处理
//即调用super.dispatchTouchEvent(),及调用View的dispatchTouchEvent();
consume = onTouchEvent (ev) ;
} else {
//如果onInterceptTouchEvent()返回false则代表当前View不拦截点击事件
//则该点击事件则会继续传递给它的子元素
//子元素的dispatchTouchEvent()就会被调用,重复上述过程
//直到点击事件被最终处理为止
consume = child.dispatchTouchEvent (ev) ;
}
return consume;
}
- View的事件分发
public boolean dispatchTouchEvent(MotionEvent event) {
if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED &&
mOnTouchListener.onTouch(this, event)) {
return true;
}
return onTouchEvent(event);
}
- View和ViewGroup的OnTouchEvent
if (((viewFlags & CLICKABLE) == CLICKABLE ||
(viewFlags & LONG_CLICKABLE) == LONG_CLICKABLE)) {
//如果当前的事件是抬起手指,则会进入到MotionEvent.ACTION_UP这个case当中。
//如果该控件是可以点击的,就一定会返回true
return true;
}
//如果该控件是不可以点击的,就一定会返回false
return false;
}
2、onTouch、onTouchEvent、onClick
3、解决滑动冲突
二、View绘制流程
1、绘制流程
Android View的绘制流程
灵魂画师,Android绘制流程——Android高级UI
2、Activity,window,view,viewRoot关系
- Activity 创建时通过attach()初始化了一个 Window 也就是 PhoneWindow,一个 PhoneWindow 持有一个 DecorView 的实例,DecorView 本身是一个 FrameLayout,继承于View,Activty通过setContentView将xml布局控件不断addView()添加到View中,最终显示到Window于我们交互;
三、自定义View
https://www.jianshu.com/p/c84693096e41
https://blog.csdn.net/carson_ho/article/details/62037696
四、动画
https://www.jianshu.com/p/733532041f46
- 描述一下View事件传递分发机制?
- onTouch、onTouchEvent、onClick的执行顺序
- 如何解决View的事件冲突 ? 举个开发中遇到的例子 ?
- 讲下View的绘制流程?
- 自定义View的过程,自定义View需要注意什么
- Android绘制机制
https://www.jianshu.com/p/0d00cb85fdf3 - invalidate()、postInvalidate()、requestLayout()分析的区别 ?
- SurfaceView和View的区别?
- Android View绘制流程,当一个TextView的实例调用setText()方法后执行了什么
- Android布局优化之ViewStub、include、merge的作用与原理
- LinearLayout,RelativeLayout布局流程、性能对比
https://www.jianshu.com/p/b9bd08ffe921 - 动画的种类有哪些?如何使用,以及底层原理?
- 为什么属性动画移动后可以点击,而补间动画不行?
https://www.jianshu.com/p/2412d00a0ce4
https://www.jianshu.com/p/46f48f1b98a9
https://mp.weixin.qq.com/s/hiWxzJkDjvDoClOUuJI7CA
网友评论