Android UI:View:Scroll
文章目录
-
- 源码分析
- mScrollX、mScrollY:移动距离
- View
- ViewGroup
- 显示控件
- scrollBy和scrollTo:移动
- 概述
- View
- Scroller和OverScroller:滑动计时器
- 概述
- Scroller类
- OverScroller类
- VelocityTracker:速度追踪
- 概述
- VelocityTracker类
- ScrollView和RecyclerView:使用Scroler或OverScroller实现滑动
- 概述
- ScrollView类
- RecyclerView类
- mScrollX、mScrollY:移动距离
- 相关API及使用
- 总结
- 源码分析
源码分析
mScrollX、mScrollY:移动距离
mScrollX、mScrollY是横竖方向的移动距离
View
定义两个可继承属性mScrollX、mScrollY
在draw(Canvas, ViewGroup, long)中,使用mScrollX、mScrollY对canvas进行translate操作和clipRect操作
ViewGroup
继承View,继承mScrollX、mScrollY
在dispatchTouchEvent(MotionEvent event)中,先利用ViewGroup的mScrollX、mScrollY对MotionEvent的位置做偏移(offset)操作,再向子View分发MotionEvent对象
在dispatchDraw(Canvas canvas)中,利用mScrollX、mScrollY对canvas进行clipRect操作
显示控件
继承View,继承mScrollX、mScrollY
不同的显示控件在onDraw(Canvas ca