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