scrollTo,scrollBy:
指的是view中的內(nèi)容的移動,而非view本身
ScrollTo:
public void scrollTo(int x, int y) {
if (mScrollX != x || mScrollY != y) {
int oldX = mScrollX;
int oldY = mScrollY;
mScrollX = x;
mScrollY = y;
invalidateParentCaches();
onScrollChanged(mScrollX, mScrollY, oldX, oldY);
if (!awakenScrollBars()) {
postInvalidateOnAnimation();
}
}
}
其中的mScrollX指的是相對于view的起始位置在X軸的偏移量;
mScrollY指的是相對于View的起始位置在Y軸的偏移量椭员。
故當scrollTo(x,y)中衍菱,當x>0時即將view中的內(nèi)容向左偏移x;
當x<0時即將view中的內(nèi)容向右偏移|x|;
當y>0時即將view中的內(nèi)容向上偏移y;
當y<0時即將view中的內(nèi)容向下偏移|y|。
scrollBy:
public void scrollBy(int x, int y) {
scrollTo(mScrollX + x, mScrollY + y);
}
其和scrollTo不同的地方在于相對于view中內(nèi)容的偏移量是累加的懦胞。