Android view的滑动

作者: 勇敢写信 | 来源:发表于2018-03-12 11:13 被阅读0次

    **[我的博客](https://zhaozhenye.github.io/)**

    view实现滑动的三种方式:

    1:通过view本身的scrollTo scrollBy 实现

    2:通过动画给view施加平移动画实现

    3:通过改变view的layoutParams,重新布局,实现

    一:使用scrollBy scrllTo

    从源码中可以看到,scrollBy实际上调用了scrollTo,  scrollBy是基本当前位置的相对滑动,scrollTo是相对于传入参数的绝对滑动。

    这里需要理解view的两个变量 mScrollX 和 mScrollY

    mScrollX :view的左边缘和view内容的做边缘的距离

    mScrollY :view的上边缘和view内容的上边缘的距离

    view的边缘指的是四个顶点的边缘

    view内容边缘指的是view的内容的边缘

    滑动的只是view的内容区域

    记住:从左到右是负值,从右到左只正值

      从上到下是负值,从下到上是正值

    这个部分需要自己好好理解

    二:使用动画

    使用平移动画可以实现view的滑动

    使用动画来实现view的滑动,主要是改变view的translationX 和 translationY属性

    既可以使用view的动画,也可以使用属性动画。

    参数介绍:

    1:target: 目标view

    2:属性:例如:translationX translationY

    3:values:可变参数。

    只有一个参数表示,view移动到的位置

    只有两个参数:第一个参数表示开始位置,第二个参数表示结束位置

    大于2个参数:一段时间内,移动的过程。

    例如这个例子表示的就是,先向右平移200个像素,再基于原点向左移动200个像素,再回到原点。原点指的是view本身

    使用属性动画的好处是:在平移前设置的点击事件,再平移后点击有效。如果使用view本身动画,不能实现这种效果。解决方式就是:通过平移后新建一个相同的view,通过显示隐藏实现移动后的点击效果。

    三:改变布局参数

    通过改变view的layoutParams参数实现平移,比如我们想让view向右平移100个像素,我们只需要给layoutParams的marginLeft设置成100就可以了。

    总结:三种方式的优缺点

    scrllTo scrllBy :操作简单,适合对view的内容进行移动

    动画:适合动画效果多,并且没有用户交互

    改变布局参数:操作较复杂,适合有用户交互的移动。

    相关文章

      网友评论

        本文标题:Android view的滑动

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