此篇为ViewPager2的拓展篇,具体可查看ViewPager2的使用
ViewPager2自定义动画的核心是使用PageTransformer来实现,他是ViewPager2中的一个接口
原理
要显示非默认屏幕滑动动画,请实现 ViewPager2.PageTransformer 接口并将其提供给 ViewPager2 对象。该接口只会公开一个方法 transformPage()。在屏幕切换的每个点,系统会针对每个可见页面(通常只有一个可见页面)和刚刚离开屏幕的相邻页面调用此方法。 例如,如果第 3 页可见且用户拖向第 4 页,则在手势的每个步骤,会针对第 2 页、第 3 页和第 4 页调用 transformPage()。
然后在您的 transformPage() 实现中,您可以根据页面在屏幕上的位置确定需要切换哪些页面,从而创建自定义滑动动画。页面位置取自 transformPage() 方法的 position 参数。
position 参数表示指定页面相对于屏幕中心的位置。 此参数是一个动态属性,会随着用户滚动浏览一系列页面而变化。当页面填满整个屏幕时,其位置值为 0。 当页面刚刚离开屏幕右侧时,其位置值为 1。如果用户在第一页和第二页之间滚动到一半,则第一页的位置为 -0.5,第二页的位置为 0.5。根据页面在屏幕上的位置,您可以使用 setAlpha()、setTranslationX() 或 setScaleY() 之类的方法设置页面属性,从而创建自定义滑动动画。
例:创建页面缩小动画,命名为ZoomOutPageTransformer
public class