Android ViewPager.PageTransformer简单介绍

viewPager是Android开发中经常使用的一个控件,在使用过程中如果需要给各page进入退出添加动画,就可以通过设置PageTransformer来实现。

PageTransformer是一个接口,需要具体实现其transformPage方法,

public void transformPage(View page, float position) {

}

其中参数page为页面view,position为相对当前页面对应的位置,具体文档说明如下:

Android ViewPager.PageTransformer简单介绍_第1张图片
PageTransformer

即左边page,当前page,右边page对应初始position值分别为-1,0,1

当向左滑动时,当前page的position值变化为[0~-1],右边page的position值变化为[1~0];

同理,当向右滑动时,当前page的position值变化为[0~1],左边page的position值变化为[-1~0]。

这样,我们可以在page的移动过程中更改view的属性来达到动画效果,例如:

Android ViewPager.PageTransformer简单介绍_第2张图片
动画

向左滑动,当前page左移渐隐,右边page从中间由小到大渐现;向右滑动,当前页面从中间由大到小渐隐,左边page右移渐现。

这里是通过设置TranslationX来控制page的真正位置,默认是跟着滑动对应移动。可以理解为真正水平位置

X = 新left + translationX。

设置好动画效果后,我们可以通过自定义viewPager的Scroller来控制页面滚动的消耗的时间,也就是动画时间,首先重新定义scroller

Android ViewPager.PageTransformer简单介绍_第3张图片
自定义Scroller

然后通过反射方法重新设置viewPager的scroller

Android ViewPager.PageTransformer简单介绍_第4张图片
设置viewPager的Scroller

以上就是对ViewPager中PageTransformer的一点简单介绍。

你可能感兴趣的:(Android ViewPager.PageTransformer简单介绍)