繁体   English   中英

在RecyclerView中动画项目交换

[英]Animate item-swap in 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);

问题是,这不是动画,我找不到原因。

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

有任何想法吗?

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

在RecyclerView上删除项目时没有动画

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM