【问题标题】:How to animate the change of a layout manager of recycler view如何为回收站视图的布局管理器的更改设置动画
【发布时间】:2015-05-20 23:46:51
【问题描述】:

我正在使用带有 2 个不同布局布局管理器的回收器视图,即 LinearLayoutManager 和 GridLayoutManager。

我想在从一个布局管理器切换到另一个管理器时为项目设置动画。有没有办法达到这个效果?

我脑海中突然出现的方法是覆盖 setLayoutManger 方法并使用 fromLayoutManager 捕获项目的 BEFORE 状态,并使用 toLayoutManager 计算项目的 AFTER 状态并将这些项目设置为动画。

我还没有深入研究代码,所以任何人都可以告诉我这种方法可以实现还是有更好的方法来实现?

【问题讨论】:

  • 你有这方面的最新消息吗?

标签: android animation layout android-recyclerview


【解决方案1】:

我通过将以下两种方法添加到我的适配器来解决这个问题。我打电话notifyRemoveEach(),更改布局管理器,然后打电话notifyAddEach()。根据您的 ItemAnimator 上指定的持续时间,项目会短暂地动画出/入。

    public void notifyRemoveEach() {
        for (int i = 0; i < items.size(); i++) {
            notifyItemRemoved(i);
        }
    }

    public void notifyAddEach() {
        for (int i = 0; i < items.size(); i++) {
            notifyItemInserted(i);
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    相关资源
    最近更新 更多