View中的scrollTo,scrollBy

scrollTo,scrollBy:

  指的是view中的内容的移动,而非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中的内容向左偏移x;
                     当x<0时即将view中的内容向右偏移|x|;
                     当y>0时即将view中的内容向上偏移y;
                     当y<0时即将view中的内容向下偏移|y|。

scrollBy:

 public void scrollBy(int x, int y) {
        scrollTo(mScrollX + x, mScrollY + y);
    }

其和scrollTo不同的地方在于相对于view中内容的偏移量是累加的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。