2016-01-05 149 views
1

我有我的RecyclerView defaultItemAnimator问题。当我使用notifyItemRemoved()移除其中一个项目时,我还在另一个特定索引上调用notifyItemChanged()以更改其中的文本。在删除动画期间,我称为notifyItemChanged()的项目会更改其文本,但会执行一些看起来很愚蠢的动画,像拇指一样突出显示。 (它立即移动到其新的位置,而其余的移动到其新的位置)Android的 - RecyclerView动画notifyItemChanged后notifyItemRemoved

有没有办法得到通知,当notifyItemRemoved()完成后,我可以然后调用notifyItemChanged()?

+0

结帐这个SO答案[插入/删除动画回收站查看](http://stackoverflow.com/a/32890849/3140227) –

回答

1

一个可能的解决方案是设置一个Handler。 获取notifyItemRemoved()和notifyItemChanged()的Animation类的源代码。在方法里面应该是这些行:

animation.setDuration(getRemoveDuration()) 
      .alpha(0).setListener(new VpaListenerAdapter() { 
     @Override 
     public void onAnimationStart(View view) { 
      dispatchRemoveStarting(holder); 
     } 

animateRemoveImpl()方法内部。

进入的

getRemoveDuration() 

申报和获得的价值。 在带有getRemoveDuration()的postDelay的处理函数中设置notifyItemChange()。 的处理器也可以看某事像:

handler.postDelayed(notifyItemChanged, theDurationValue); } 
相关问题