最近在使用开源库TableFixHeaders(https://github.com/InQBarna/TableFixHeaders),对于其中Scroller的用法不清楚,故看看这几个方法干了什么。
点与点之间的计算 + 触摸事件的分发。
1. startScroll
当startScroll执行过程中即在duration时间内,computeScrollOffset 方法会一直返回false,但当动画执行完成后会返回返加true.
如果不设置duration,默认DEFAULT_DURATION = 250.
public void startScroll(int startX, int startY, int dx, int dy, int duration) {
mMode = SCROLL_MODE;
mFinished = false;
mDuration = duration;
mStartTime = AnimationUtils.currentAnimationTimeMillis();
mStartX = startX;
mStartY = startY;
mFinalX = startX + dx;
mFinalY = startY + dy;
mDeltaX = dx;
mDeltaY = dy;
mDurationReciprocal = 1.0f / (float) mDuration;
}
看代码,这个方法就是把需要滚动的参数传进来。