美文网首页
ScrollTo与ScollBy区别,及参数 x,y 解释

ScrollTo与ScollBy区别,及参数 x,y 解释

作者: 正在写诗中 | 来源:发表于2019-02-01 11:48 被阅读22次

    很多博客和书上对scrollTo(x,y)的方法解释为

    “ scrollTo(int x,int y)表示滑动到终点位置(x,y)”或者是“scrollTo(int x,int y)表示滑动到一个具体的坐标点(x,y)”

    这种解释容易造成误解 ,似乎解释为执行scrollTo方法后,view的最终位置是是在坐标(x,y)上。

    scrollTo方法应该是表示

     相对view初始位置 横向移动了x,纵向移动了y的距离,而view的初始位置是不变的,所以不管调用多少次scrollTo()方法,view移动的都是同一个位置。

    至于ScrollBy方法,其实内部就一句代码:

    其实最终也是调用 scrollTo 方法。 只是每次是相对于 当前View 的位置 移动 x和y的距离。

    至于,为什么调用 scrollBy(100,100) ,view不是按照我们的直觉向右下角移动,而是向左上角移动?

    这是因为view移动时所使用的参考对象不同,view移动的参考对象是手机屏幕。

    确切的说,本身View所在的画布是固定,不动的。而我们手机屏幕面积有限,只能看到画布的一小片区域,这是执行 scrollBy(100,100),是手机屏幕相对于画布向右下角移动了(100,100)的距离,但对于用户来说,是view控件向左上角移动了位置。

    相关文章

      网友评论

          本文标题:ScrollTo与ScollBy区别,及参数 x,y 解释

          本文链接:https://www.haomeiwen.com/subject/kzarsqtx.html