在Android设备上不管是下拉刷新还是SlidingMenu,它们基础都是滑动,从另一方面来说安卓的手机由于屏幕比较小,为了给用户呈现出更多的内容就必须用到滑动来显示和隐藏一些内容。通过三种方法可以实现View的滑动,第一种是通过View本身提供的ScrollTo/ScrollBy方法来实现的;第二种是通过动画给View施加平移效果来实现的;第三种是通过改变View的LayoutParams使得View重新布局从而实现滑动。
1.使用scrollTo/scrollBy
为了实现View的滑动,View提供了专门的方法来实现这个这个功能,那就是scrollTo/scrollBy。从源码上看,scrollBy实际上也是调用了scrollTo的方法,他实现了基于当前位置的相对滑动,而scrollTo则实现了基于所传递参数的绝对滑动。View滑动过程中View内部的两个属性mScrollX、mScrollY的改变规则,这两个属性可以通过getScrollX和getScrollY方法来分别得到。mScrollX的值总是等于View左边缘和View内容左边缘的水平的距离,而mScrollY的值总是等于View上边缘和View内容上边缘的竖直距离。View的边缘是指View的四个顶点,而View内容是指View的内容。mSrcollX和mScrollY的单位为像素,并且当View的左边缘在View内容左边的右边时候mScrollX的值为正,当View上边缘在View内容上边的时候mScrollY的值为正。View的scrollTo和scrollBy实现的只是View的内容移动,并不能将View的本身进行移动。
2.使用动画
通过动画我们也能够让一个View进行平移,而平移就是一种滑动,使用动画来操作View,主要是操作View的translationX和translationY属性,既可以用传统View的动画,也可以使用属性动画,如果采用属性动画应该在项目中采用nineoldandroids。但是采用传统的View动画不能是移动完成后的View还有点击事件,而采用属性动画却可以实现。
3.改变布局参数
我们可以通过改变View的LayoutParams的参数来实现View的移动效果。
4.三种滑动的对比
scrollTo/scrollBy:简单操作,适合对View内容的滑动。
动画:操作简单,主要适用于没有交互的View和实现复杂的动画。
改变布局参数:操作稍微复杂,适用于有交互的View。