viewPager是Android开发中经常使用的一个控件,在使用过程中如果需要给各page进入退出添加动画,就可以通过设置PageTransformer来实现。
PageTransformer是一个接口,需要具体实现其transformPage方法,
public void transformPage(View page, float position) {
}
其中参数page为页面view,position为相对当前页面对应的位置,具体文档说明如下:
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的属性来达到动画效果,例如:
动画向左滑动,当前page左移渐隐,右边page从中间由小到大渐现;向右滑动,当前页面从中间由大到小渐隐,左边page右移渐现。
这里是通过设置TranslationX来控制page的真正位置,默认是跟着滑动对应移动。可以理解为真正水平位置
X = 新left + translationX。
设置好动画效果后,我们可以通过自定义viewPager的Scroller来控制页面滚动的消耗的时间,也就是动画时间,首先重新定义scroller
自定义Scroller然后通过反射方法重新设置viewPager的scroller
设置viewPager的Scroller以上就是对ViewPager中PageTransformer的一点简单介绍。
网友评论