【问题标题】:ItemAnimator how to time animation to start one after the otherItemAnimator如何定时动画开始一个接一个
【发布时间】:2014-11-14 16:07:27
【问题描述】:

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

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    我一直在制作完全相同的动画。我暂时放在一边了,但是在正常速度下效果还是不错的。当我放慢它进行调试时,我遇到了一个奇怪的错误,它会导致某些项目被多次动画。此外,如果动画还没有完成,向上滚动也不是很有效,但这不是一个在正常速度下可能会遇到的错误。

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

    基本上,我所做的是查看材质动画中的图案。基于该模式,我组合了一个 for 循环,该循环生成一个可运行对象,该可运行对象具有给定坐标(基于 for 循环中的值),并被告知使用这些坐标为视图设置动画。

    就像我说的,我还没有完全完成这个项目,但它作为 Alpha 版或概念验证的效果相当不错。我知道你问这个问题已经有一段时间了,但如果你愿意一起完成这个问题,请告诉我。

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-01
        • 2022-07-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多