在RecyclerView中动画项目交换

时间:2015-02-03 10:19:03

标签: android android-recyclerview

我已经使用适配器和所有内容实现了回收站视图。我可以用

反转项目列表
Collections.reverse(items);

然后运行列表以通知适配器此更改

final int end = items.size() - 1;
for (int i = 0; i < end; i++) {
    mAdapter.notifyItemMoved(0, end - i);
}

到目前为止一切顺利。我现在要做的是交换该列表中的两个项目并为此更改设置动画。

Collections.swap(items, 5, 8);

mAdapter.notifyItemMoved(5, 8);
mAdapter.notifyItemMoved(8, 5);

问题是,这不是动画,我无法找出原因。

我确实想要类似于简单的反向动画。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我写这篇文章后不久,我又砍了一下,找到了原因。事实证明,我的问题与以下线程有关:

No animation on item removal on RecyclerView

我确实弄乱了我的notifyDataSetChanged()和notifyItemMoved(0,1)调用。调用notifyDataSetChanged()后,交换项目时不会生成动画,notifyItemMoved也无效。