RecyclerView ItemTouchHelper Action Drag Ended

后端 未结 2 1612
太阳男子
太阳男子 2021-02-05 08:17

I need to listen to the user when he stops drag and drop on my RecyclerView (when he drops the selected item).

Can I get this Information through my Ite

2条回答
  •  离开以前
    2021-02-05 09:07

    UPDATED

    First you can define where an object can be dropped by implementing canDropOver

    @Override
    public boolean canDropOver(RecyclerView recyclerView, RecyclerView.ViewHolder current, RecyclerView.ViewHolder target) {
        return current.getItemViewType() == getItemViewType();
    }
    

    Update your adapter you want to use onMove this can be called multiple during a drag operation

    @Override
    public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        adapter.moveItem(viewHolder.getAdapterPosition(), target.getAdapterPosition());
        return true;
    }
    

    To detect when an interaction with an element is over implement clearView this is for any action type (drag or swipe) in the even that it succeeds (item moved or swiped) or is canceled (item not moved or swiped)

    @Override
    public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
        super.clearView(recyclerView, viewHolder);
        // Action finished
    }
    

提交回复
热议问题