ViewPager2添加自定义动画

此篇为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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值