仔细观察时,RecyclerView中的插入动画分为两个步骤:
1)白色空间扩大,为新项目腾出空间
2)该项目是动画的
删除相同的事情,逆序
例子:
https://github.com/wasabeef/recyclerview-animators
http://www.grokkingandroid.com/first-glance-androids-recyclerview/
第二步可以使用ItemAnimator类轻松定制,但我找不到第一步的任何信息。我的布局恰好非常难看(侧面连续的颜色)。
LayoutAnimationController似乎是管理第一步的可能候选者,但添加一个新的不会改变任何东西,并且跟随setLayoutAnimationListener中的日志保持沉默。
我甚至无法禁用此步骤,这将允许我在onBindViewHolder中手动管理动画。
实际上有时候第一步似乎没有开火,但我无法解释原因。我使用notifyItem *管理所有操作,没有notifyDataSetChanged。