PageTransformer函数详解

一.日志数据分析

PageTransformer接口中有transformPage(View view, float position)函数,我用了一个Demo工程的日志得到以下数据。这个Demo工程的ViewPager有三个View。
(1)当有View1左滑到View2时,由transformPage函数的日志获得以下数据(注意顺序):
view2的posion由1 -> 0;
view1的posion由0 -> -1;


QQ图片20160814005415.png

(2)当View2右滑到View1时,由transformPage函数的日志获得以下数据(注意顺序):
view2的posion有0 -> 1;
view1的posion由-1 -> 0;
view3的posion有1 -> 2;
(2)当View2右滑到View3时,由transformPage函数的日志获得以下数据(注意顺序):
view2的posion有0 -> -1;
view3的posion有1 -> 0;
view1的posion有-1 -> -2;

二.总结

其实我们在实际使用时,实现滑动效果不会考虑所有ViewPager的子item,只考虑滑动时左右两个item。
当左滑时:左View的posion将会由 0-> -1,右View的posion将会由1 -> 0;
当右滑时:左View的posion将会由 -1-> 0,右View的posion将会由 0-> 1;
其实很好理解:

  • 当左滑时,屏幕离左View的距离由不偏离(即0)到左偏离一个ViewPager宽度(即-1)。屏幕离由View的距离由右偏离一个ViewPager宽度(即1)到不偏离(即0)
  • 当右滑时,屏幕离右View的距离由不偏离(即0)到右偏离一个ViewPager宽度(即1)。屏幕离左View的距离由左偏离一个ViewPager宽度(即-1)到不偏离(即0)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容