简述Android的事件分发机制?技术博客大总结php
dispatchTouchEvent方法的做用是什么?git
ViewGroup事件分发伪代码github
View事件分发伪代码面试
View和ViewGroup在dispatchTouchEvent上的区别segmentfault
onInterceptTouchEvent方法做用是什么?markdown
View和ViewGroup在onInterceptTouchEvent上的区别:布局
onTouchEvent的方法的做用是什么?技术博客大总结post
滑动冲突有哪些场景?学习
滑动冲突处理原则动画
滑动冲突解决办法有哪些?技术博客大总结
外部拦截解决滑动冲突法
外部拦截法要点
onClick方法生效的两个条件?
onTouch()、onTouchEvent()和onClick()关系是怎样的,哪个先执行?
onTouch->onTouchEvent->onClick
若是设置了onClickListener, 可是onClick()没有调用,可能产生的缘由? 技术博客大总结
View滑动有哪些方法?
Layout实现滑动
offsetLeftAndRight和offsetTopAndBottom实现滑动
LayoutParams实现滑动
用ViewGroup的MariginLayoutParams的方法去设置margin
//方法一:经过布局设置在父控件的位置。可是必需要有父控件, 并且要指定父布局的类型,很差的方法。 RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) getLayoutParams(); layoutParams.leftMargin = getLeft() + offsetX; layoutParams.topMargin = getTop() + offsetY; setLayoutParams(layoutParams); /**=============================================== * 方法二:用ViewGroup的MarginLayoutParams的方法去设置marign * 优势:相比于上面方法, 就不须要知道父布局的类型。
*===============================================*/ ViewGroup.MarginLayoutParams mlayoutParams = (ViewGroup.MarginLayoutParams) getLayoutParams(); mlayoutParams.leftMargin = getLeft() + offsetX; mlayoutParams.topMargin = getTop() + offsetY; setLayoutParams(mlayoutParams); ```
scrollToscrollBy实现滑动
scrollTo/By内部的mScrollX和mScrollY的意义
动画实现滑动的方法
ViewDragHelper
事件的传递规则是什么?
View处理事件的优先级?
点击事件传递过程遵循以下顺序?技术博客大总结
事件传递规则要点?
Scroller的做用?
Scroller的要点有哪些?
Scroller的使用步骤?
Scroller工做原理?技术博客大总结
Activity事件分发的过程?
Window事件分发?
DecorView的事件分发?
根View的事件分发?技术博客大总结
GestureDetector做用和注意点?
有哪些经常使用的监听方法?
OnGestureListener
OnGestureListener做用技术博客大总结
OnGestureListener能监听哪些手势
OnDoubleTapListener
OnDoubleTapListener做用
OnDoubleTapListener能监听哪些手势?
View的滑动方式?
三种方式:
a. 经过View自己提供的scrollTo/scrollBy方法
b. 经过动画给View施加平移效果实现滑动
c. 经过改变View的LayoutParams使View从新布局实现滑动
MarginLayoutParams params = (MarginLayoutParams) mButton.getLayoutParams(); params.width += 10; params.height += 10; mButton.setLayoutParams(params);
三种方法的使用对比
scrollTo()和scrollBy()技术博客大总结
Scroller实现滑动的具体过程:
View工做流程
MeasureSpec做用技术博客大总结
经过宽测量值widthMeasureSpec和高测量值heightMeasureSpec决定View的大小
SpecMode有三类:
SurfaceView是从View基类中派生出来的显示类,他和View的区别有: