ItemAnimator如何计时动画一个接一个地开始

时间:2014-11-14 16:07:27

标签: java android animation android-animation android-recyclerview

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我一直在研究完全相同的动画。我暂时将它放在一边,但在正常速度下取得了相当不错的效果。当我放慢速度进行调试时,我发现了一个奇怪的错误,导致某些项目被动画多次。此外,如果动画尚未完成,向上滚动也不会起作用,但这不是一个可能以正常速度运行的错误。

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

基本上,我做的是看了材质动画中的模式。基于该模式,我将一个for循环产生一个for循环,该循环产生一个给定坐标的runnable(基于for循环中的值)并告诉使用这些坐标为视图设置动画。

就像我说的那样,我并没有完成这个项目,但它作为一个alpha或概念证明工作得相当好。我知道自从你提出这个问题以来已经有一段时间了,但是如果你想在一起完成这个问题,请告诉我。

如果这有助于你,请告诉我。

答案 2 :(得分:0)

我已经创建了一个自定义的RecyclerView适配器类,它或多或少地实现了OP想要实现的功能,即按顺序动画制作RecyclerView的项目(按顺序,一个接一个)。

适配器类在github上作为gist here公开共享。

从描述中: "此适配器旨在创建一个连续的RecyclerView项目'动画。 它们按顺序从上到下出现。动画在首次创建RecyclerView时起作用,在项目向下滚动时不起作用。"