假设我的recyclerview中有10个项目,而项目4是与其他项目不同的视图类型。在循环回收视图中拖动说明项目0时,对项目4有淡入和淡出效果,因为我们不会使用不同的视图类型交换元素。有没有办法避免"刷新"我们拖动不同的视图类型时适配器?
@Override
public boolean onItemMove(int fromPosition, int toPosition) {
Collections.swap(mItems, fromPosition, toPosition);
notifyItemMoved(fromPosition, toPosition);
return true;
}
此处fromPosition为3,toPosition为5,但在第4位是具有不同viewType的项目。
答案 0 :(得分:0)
根据本教程的简单拖放https://github.com/iPaulPro/Android-ItemTouchHelper-Demo我必须在SimpleItemTouchHelperCallback
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder source, RecyclerView.ViewHolder target) {
if (source.getItemViewType() != target.getItemViewType()) {
//return false; //commented here
}
// Notify the adapter of the move
mAdapter.onItemMove(source.getAdapterPosition(), target.getAdapterPosition());
return true;
}