2016-07-07 49 views
1

行为的视频:https://vid.me/nF1JRecyclerView:最后一个项目对notifyItemRemoved动画()

删除:

viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      mItemManger.removeShownLayouts(viewHolder.swipeLayout); 
      mDataset.remove(position); 
      notifyItemRemoved(position); 
      notifyItemRangeChanged(position, mDataset.size()); 
      mItemManger.closeAllItems(); 
      Toast.makeText(view.getContext(), "Deleted " + viewHolder.textViewPos.getText().toString() + "!", Toast.LENGTH_SHORT).show(); 
     } 
    }); 

我该如何解决这个问题?

注: 我使用this library,和我有库更新。

更新:

viewHolder.buttonDelete.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mItemManger.removeShownLayouts(viewHolder.swipeLayout); 
       mResultArray.remove(position); 
       notifyItemRangeChanged(position, mResultArray.size()); 
       notifyItemRemoved(position); 
       mItemManger.closeAllItems(); 
       new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         notifyDataSetChanged(); 
        } 
       }, 500); 
      } 
     }); 
+0

你是怎么解决这个问题的?我有同样的问题,尝试从接受的答案的解决方案,相同的结果( –

+0

我编辑与当前的工作代码,我不知道它是否会解决问题 –

回答

1

我想你应该叫notifyItemRangeRemoved(position, 1);代替。

+0

这使项目波纹管消失并出现,看起来奇怪 –

+0

你试过jst使用'notifyItemRemoved()' –

+0

是的,我已经尝试过 –

3

RecyclerView必须有layout_height="match_parent"。如果最后一个项目的消失和重现出现同样的问题让我发疯。

+0

这正是我的问题,谢谢! –

相关问题