scrollTo(x,y);
scrollBy(x, y);
网上一些都说没有什么区别只是解释上不太一样,看过源码后发现 :
public void scrollBy(int x, int y) {
scrollTo(mScrollX + x, mScrollY + y);
}
个人猜测可能是相对位置?(没有具体测试)
startScroll 和
computeScroll(){
if (mScroller.computeScrollOffset()) {
scrollTo(mScroller.getCurrX(),mScroller.getCurrY());
postInvalidate();
}
}
配合使用
而每个 View下触发computeScroll 都是从根节点一直到触发的该控件全都执行一遍,,而相应的影响某些computeScroll做处理的滑动位置
一下是个速度 配合event事件可以做Fling 等等
VelocityTracker
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(event);
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000);
int velocityX = (int) velocityTracker.getXVelocity();