fragment切换动效,基本都是 viewpager+Transformer,但是总有它实现不了的动效,比如从0到3直接过渡,并且过渡需要加上两者的位移效果
慢动作看到,如果是viewpager,从0到3过程是无法直达的,会有0,1,2,3的过渡效果,并且动画时机是不可控的
当然,有个自定义方式可以控制速度,也是借助了 ValueAnimator 才行
不多说,因为意义不大,依然解决不了挨个跳转的问题
只能抛弃viewpager,使用原始的 FragmentManager 进行跳转,并且在跳转时加入自定义动画
如图,假设0切换到3,那么0页面不动,3页面会从右边盖上来,并且从五分之一的位置开始平移过去
以上是极端操作,正常动画速度是500毫秒,如果中途强制中断跳转需要额外处理
实现流程
1、新建TabPageTransformerUtils,初始化fragment事务,显示默认的tab
2、自定义动画,对fragment的root容器进行过渡处理,执行动画前对翻盖tab页预处理(平移五分之一)
3、动画结束时恢复属性
基本动画实现,此时fragment切换,0-3,0页面不动,3页面翻盖过来
还能加上一行代码,让0也具备平移动效,这样两者之间可以实现同步位移效果
需要注意的是,因为属性动画变更了view的属性,所以stop结束后必须恢复,否则会有两个页面重叠的问题
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee