public override int GetMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { //Instances if (ObjectUtility.CheckInherit(recyclerView.GetLayoutManager().GetType(), typeof(GridLayoutManager))) { // for recyclerView with gridLayoutManager, support drag all directions, not support swipe int dragFlags = ItemTouchHelper.Up | ItemTouchHelper.Down | ItemTouchHelper.Left | ItemTouchHelper.Right; int swipeFlags = 0; return(MakeMovementFlags(dragFlags, swipeFlags)); } else { // for recyclerView with linearLayoutManager, support drag up and down, and swipe lift and right int dragFlags = ItemTouchHelper.Up | ItemTouchHelper.Down; int swipeFlags = ItemTouchHelper.Start | ItemTouchHelper.End; return(MakeMovementFlags(dragFlags, swipeFlags)); } }