Recyclerview拖动多个视图类型

时间:2016-03-29 15:52:59

标签: android

假设我的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的项目。

1 个答案:

答案 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;
}