Android View的滑动方式

作者: 在岁月中远行 | 来源:发表于2022-09-13 01:14 被阅读0次

    自定义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为负,反之为正。

    也是效果一样的达到。

    相关文章

      网友评论

        本文标题:Android View的滑动方式

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