自界说View是安卓进阶的底子,是安卓开辟者不得不学习的知识点,而酷炫的自界说View结果也是离不开View的滑动。我们来相识View是怎样实现滑动的。
View坐标系底子知识
View的位置告急它的四个极点来决定,分别对应于View的四个属性。top,left,right,bottom。此中top是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标。
但这些坐标都是相对于父View的。
除了上面确定View位置的参数,尚有x,y,translationX,translationY这四个参数,x,y代表View的左上角的坐标值,而translationX,translationY是左上角坐标相对于父View的偏移量,默以为0,也就是View不移动,则x,y等于left和top。在View的滑动过程中,left和top体现的是View原始位置的值,这是不会改变的。
Android View的滑动方式
1 layout方法改变View位置滑动View
起首我们来看看layout方法源码
onLayout是View绘制过程中的一个方法,可以通过它确定View的位置,也就是说通过layout方法可以改变View的位置,
如许就能实现跟手滑动,可以去前后打印left,top,right,bottom数值,发现前后是厘革的了的,改变的不光是内容。
offsetLeftAndRight和offsetTopAndBottom方法改变View的位置让其滑动。
结果也是一样的,这两个方法也是真实地改变了View的位置而不是View的内容。
利用ScrollTo()和ScrollBy()滑动View
这两这个方法是View提供的滑动方法,前者是移动到某个点,后者是根据传入的偏移量举行移动。先看源码实现:
这里有个mScrollX规则我们可以这么明确:
View的左边沿在View内容的左边沿左边时,mScrollX为负,反之为正。
View的上边沿在View内容的上边沿上边时,mScrollY为负,反之为正。
也是结果一样的到达。 |