Android开发Android技术知识Android开发

Android view的滑动

2018-03-12  本文已影响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的内容进行移动

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

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

上一篇 下一篇

猜你喜欢

热点阅读