项目动画师如何定时动画开始一个接一个



我正在使用RecyclerView来显示从网站轮询的数据(=>一次完全更改)。我已经创建了一个 ItemAnimator 类,该类具有我想要的动画,但我需要知道对动画进行计时以等待前一个动画完成的最佳方法是什么。

这就是我想要实现的目标:http://www.google.com/design/spec/animation/meaningful-transitions.html#meaningful-transitions-hierarchical-timing

我们使用setStartDelay(或setStartOffset,取决于你使用的动画器)取得了很大的成功。有一个从 0 开始的延迟变量,当您遍历孩子创建动画时,将开始延迟设置为当前值并添加一些增量,例如 100 毫秒。

我一直在制作完全相同的动画。我暂时把它放在一边,但在正常速度下效果相当不错。当我放慢速度进行调试时,我遇到了一个奇怪的错误,导致某些项目多次动画。此外,如果动画尚未完成,向上滚动就不起作用,但这不是以正常速度遇到的错误。

这是我的代码:https://github.com/halfjew22/AnimateRecyclerGrid

从本质上讲,我所做的是查看材质动画中的图案。基于这种模式,我把一个 for 循环放在一起,生成一个可运行的可运行对象,该可运行对象给定坐标(基于 for 循环中的值),并被告知使用这些坐标对视图进行动画处理。

就像我说的,我还没有完全完成这个项目,但它作为alpha或概念验证工作得很好。我知道你问这个问题已经有一段时间了,但如果你愿意一起完成这个问题,请告诉我。

让我知道这是否对您有所帮助。

我创建了一个自定义的RecyclerView适配器类,它或多或少地完成了OP想要实现的目标,即按顺序(按顺序,一个接一个)对RecyclerView的项目进行动画处理。

适配器类在 github 上作为要点在这里公开共享。

从描述:"此适配器旨在创建连续的RecyclerView项目的动画。它们按顺序从上到下显示。动画在首次创建回收器视图时有效,在向下滚动项目时不起作用。

相关内容

最新更新