回答

0

的onSelectedChanged(RecyclerView.ViewHolder,INT)回調提供了當前actionState信息: - ACTION_STATE_IDLE: - ACTION_STATE_DRAG - ACTION_STATE_SWIPE

所以,你可以跟蹤訂單是否改變,並且狀態發生變化時ACTION_STATE_IDLE,你可以做你需要做的!

像這樣實現一個回調類。

class CardsTouchHelperCallback extends ItemTouchHelper.Callback { 

... 
@Override 
    public boolean onMove(RecyclerView recyclerView, 
RecyclerView.ViewHolder viewHolder, 
         RecyclerView.ViewHolder target) { 

    int fromPosition = viewHolder.getAdapterPosition(); 
    int toPosition = target.getAdapterPosition(); 

    dragFrom = fromPosition; 
    dragTo = toPosition; 

    mOrderChanged = true; 

    return false; 
} 

@Override 
public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) { 
    super.onSelectedChanged(viewHolder, actionState); 

    if (actionState == ItemTouchHelper.ACTION_STATE_IDLE && mOrderChanged) { 
     //doSomething(); 
     touchHelperAdapter.onItemMove(dragFrom, dragTo); 
     mOrderChanged = false; 
    } 
} 
} 
相關問題