我已经实现了一个 RecyclerView
,我可以在其中添加和删除项目。我希望将添加的项目添加到倒数第二个位置,并且每当我添加新项目时,动画运行良好。也就是说,最后一个项目向下移动,为新项目淡入留出空间。
当我删除一个项目时,出现了一个我不知道如何解决的问题。我希望它的行为方式是:
- 淡出删除的元素,
- 向上移动它下面的所有项目。
实际发生的是,首先,最后一个项目消失,然后动画的其余部分开始。当已删除元素下方的项目向上移动时,最后一个项目重新出现为来自墙后。
对我来说,好像 RecyclerView
缩小到“动画后”高度,然后执行动画。
我还没有定义 ItemAnimator
,所以 DefaultItemAnimator
必须是使用的那个。我看过this video ,并在 LinearLayoutManager
的自定义实现中覆盖了 supportsPredictiveItemAnimations
方法,但它没有修复它。
最佳答案
我已经通过 Google Issue Tracker 报告了这个问题 here
希望我们能尽快修复!正如你所说,当你的 recyclerview 包装它的内容以计算它的高度时,它似乎与 recyclerview 的测量更新和动画之间可能的竞争条件非常相关。
This article还以非常详细的方式解释了问题。
关于android - RecyclerView 移除动画错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36117070/