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

很多博客和书上对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控件向左上角移动了位置。

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

推荐阅读更多精彩内容

  • 一滑动效果的产生 滑动一个View,本质区别就是移动一个View。改变当前View所在的坐标,原理和动画相似不断改...
    猿万阅读 9,956评论 0 14
  • Android 群英传笔记第一章Android体系与系统架构第二章 Android开发工具及技巧第三章 Andro...
    YoungerDev阅读 472评论 0 5
  • 什么是View View 是 Android 中所有控件的基类。 View的位置参数 View 的位置由它的四个顶...
    acc8226阅读 1,209评论 0 7
  • 主要总结了: View的基础知识:View的mTop、mLeft、mRight、mBottom四个参数和对应的四个...
    Utte阅读 1,900评论 0 1
  • 心脏是一座有两间卧室的房子,一间住着痛苦,另一间住着欢乐,人不能笑得太响。否则笑声会吵醒隔壁房间的痛苦 ——卡夫卡
    我爱蒸饺子阅读 204评论 0 0