ViewPager2.PageTransformer的研究

在ViewPager2的 PageTransformer的定制过程中,会出现各种的疑问.其中比较困扰我的就是 PageTransformer的各个page与position是如何对应的呢?

首先声明一点,本文的position指的是ViewPager2.PageTransformer的回调方法transformPage(View page, float position)中的postion,和我们所说的集合或者RecyclerView的item的position无关!

一、 最普通的列表, 如左图所示: Position是从0,1,2...位按顺序排序到 list.size-1位.

ViewPager2.png

二、卡片堆叠排列的列表, 如右图所示: 满足以下特征:

  1. 卡片的初始状态和普通列表一致,最顶层的position = 0,其余位置依次顺序排列.
    2.向上滑动之后,之前position = 0 的page 的会改变成 position = -1,其余的page的postion都会改变成 旧position - 1. 滑动之后显示在界面顶层的position始终为0.

这是transformPage(View page, float position)回调方法的规则: 当前的position始终为0,被划上去的page的position会变成负数,而在当前的页下面的page的position也会比初始状态相应减少N个position.这取决于在初始状态下,当前的页的初始position为N.

所以我们在计算缩放和位移动画时,要知道自己修改的是哪一个position.结合上图弄清position变化的原理很重要.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容