- Android里
Scroller
类是为了实现View平滑滚动的一个Helper
类。 - 通常在自定义的View时使用,在View中定义一个私有成员mScroller = new Scroller(context)。
- 设置mScroller滚动的位置时,
并不会导致View的滚动
,通常是用mScroller记录/计算View滚动的位置,再重写View的computeScroll(),完成实际的滚动。
相关API介绍如下
1 | mScroller.getCurrX() //获取mScroller当前水平滚动的位置 |
例子
举例说明,自定义一个CustomView,使用Scroller实现滚动
1 | import android.content.Context; |
invalidate和postInvalidate区别
两者作用一样都是通知UI刷新
,但是invalidate
只能在UI线程
中调用,postInvalidate
则在非UI线程
中调用
scrollTo
scrollTo(x,y)是View的方法,其中x,y参数可以理解为View的左上角坐标从(0,0)移动到(x,y)
举例说明scrollTo(-5,10)
就是向右移动5`
向下移动10`