在 Gank 上看到了 ViewPagerCards 这个项目,觉得挺好看的,就看了下源码。
关于这个 demo 里面的效果有两个地方需要注意的:一个就是切换时的动画效果和同时显示多个page页面
动画效果开始以为是通过ViewPager 的 setPageTransformer 方法实现的,看来下代码虽然有设置,但里面的实现方法是空的,实际上是通过 addScrollListener 的效果实现的,如何使用动画看这篇文章
同时显示多个是通过 设置 viewpager 的 padding 以及 clipToPadding 这种属性配合实现的。对后面属性不熟悉的可以看这篇文章
这篇文章就不主要介绍上面的方法了,主要是想要介绍如何自定义 ViewPager 的动画
以知乎的为例子,文字逐渐消失及滚动的效果。实现了顶部全透明和带有阴影两种
在做的时候遇到下面的问题:
- 一个是viewpager 设置了style 是透明,但是顶上确一直是一条白色的背景,显示的其实是 activity 的背景,全透明解决方法是在 viewpager 外面套一层 ScrimInsetsFrameLayout 和 CoordinatorLayout; 半透明不用,然后去掉所有的fitSystemWindow 参考 ProductTour
- 动画必须等待移动结束才开始执行,原因是没有把位移参数算进去,导致出现问题,但这样计算的话有些复杂,如果简单的动画可以直接改变 view 的大小解决
Github Demo 地址
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!