如何在notifyItemRemoved()之后暂停/停止recyclerview动画?

时间:2016-02-26 19:19:02

标签: android animation android-recyclerview

我已为我的recyclerview应用动画,如下所示

  SlideInRightAnimator animator = new SlideInRightAnimator();//using custom Animation to remove the recyclerview Item
animator.setRemoveDuration(200);//specify the duration to run the animation
 mRecyclerView.setItemAnimator(animator);

我已将这个动画应用于recyclerview,因为我不知道 但是,一旦我notifyItemRemoved(),我想在我的适配器中取消停止动画。

我理解onBindViewHolder会立即被调用,但不确定如何将我的动画师传递到我的Recyclerview适配器或通常调用停止动画。

我在Fragment中有eventbus处理程序,我在Adapter上调用removeItem方法,如下所示。

   public void onEventMainThread(MyEvent event) {
        switch (event.getEventType()) {
          ......
            case DELETE:

                mAdapter.removeItem(event.getItem());
                break;
            default: break;
        }
}

更新:在调用通知项目后,我也尝试了以下操作:

mRecyclerView.setItemAnimator(null);

但这最终会一起取消动画

感谢您的回应

1 个答案:

答案 0 :(得分:0)

好吧,我想出了一个有效的选项。我相信有更好的选择,但这就是我的所作所为。   在我的Adapter类中,我在onBindViewHolder方法中复制了视图持有者的引用。然后在onRemoveItem方法中,我使用viewHolder的itemview来动画使用ObjectAnimator和动画集。在动画之后,我将视图副本复制为null。   通过这种方式,我可以在个人视图上实现动画。