【问题标题】:Recyclerview dragging multiple viewtypesRecyclerview拖拽多个viewtype
【发布时间】:2017-01-31 16:32:19
【问题描述】:

假设我的 recyclerview 中有 10 个项目,第 4 个项目的视图类型与其余项目不同。当在 recyclerview 上拖动说项目 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 的项目。

【问题讨论】:

    标签: android


    【解决方案1】:

    根据本教程通过简单的拖放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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多