仿IOS边界弹性动画 (RecyclerView、NestedScrollView、ViewPager )

1,778 阅读1分钟

怎么开头呢?

在Ui过程中,每一个Android开发可能都接收到如下需求:

这个XXX的时候,防一下IOS的某某动画

是不是,肯定是的.

IOS中页面滑动动画确实不错, 我说的是页面边界的弹簧动画, 其实这是一个简单的动画,出现的场景可以是任意位置

  1. 如果出现在布局的某个位置,我们直接可以使用动画处理
  2. 需求中基本出现的位置是滚动性容器,或者某一个页面

先看下效果

效果1 页面边界弹性动画

output_1.gif

效果2 列表边界弹性动画

out.gif

特性描述

  1. 边界状态时手指拖动跟随手指,松开动画
  2. 快速滑动,惯性弹性动画

相关技术调研

其实就是Google找轮子,找的过程中发现,有人使用EdgeEffect 实现了RecyclerView 列表的阻尼滑动效果(就是弹簧动画) juejin.cn/post/723546… ,

可以参考这个大佬的文章:juejin.cn/post/723546…

满足需求的核心技术 (读源码 很好理解)

  1. 判断容器是否已经在边界
  2. 处理惯性手势

RV看完这个juejin.cn/post/723546… 文章就搞定了,ScrollView 爬了RV的代码 修改完成,我不想写原理 有需要找我要代码

实现效果:

out.gif

仓库地址:

github.com/kongxiaoan/…