# ItemTouchHelper.SimpleCallback

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  
belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1  
Summary:[Inherited Constants](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#inhconstants)\|[Ctors](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#pubctors)\|[Methods](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#)  

# ItemTouchHelper.SimpleCallback

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public
static

abstract
class
ItemTouchHelper.SimpleCallback
`  
`


``

extends `[ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback)`


``


`

|---|---|-----------------------------------------------------------------|
| java.lang.Object                                                      |||
| ↳ | [android.support.v7.widget.helper.ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback) ||
|   | ↳ | android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback |

<br />

*** ** * ** ***

A simple wrapper to the default Callback which you can construct with drag and swipe directions and this class will handle the flag callbacks. You should still override onMove or onSwiped depending on your use case.  

```
 ItemTouchHelper mIth = new ItemTouchHelper(
     new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN,
         ItemTouchHelper.LEFT) {
         public abstract boolean onMove(RecyclerView recyclerView,
             ViewHolder viewHolder, ViewHolder target) {
             final int fromPos = viewHolder.getAdapterPosition();
             final int toPos = target.getAdapterPosition();
             // move item in `fromPos` to `toPos` in adapter.
             return true;// true if moved, false otherwise
         }
         public void onSwiped(ViewHolder viewHolder, int direction) {
             // remove from adapter
         }
 });
 
```

<br />

## Summary

|                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ### Inherited constants                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#)From class` `[android.support.v7.widget.helper.ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback)` ` |-------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | `int` | [DEFAULT_DRAG_ANIMATION_DURATION](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#DEFAULT_DRAG_ANIMATION_DURATION) <br />   | | `int` | [DEFAULT_SWIPE_ANIMATION_DURATION](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#DEFAULT_SWIPE_ANIMATION_DURATION) <br /> | |

|                                                                                                                               ### Public constructors                                                                                                                               ||
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[ItemTouchHelper.SimpleCallback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#ItemTouchHelper.SimpleCallback(int, int))`(int dragDirs, int swipeDirs) ` Creates a Callback for the given drag and swipe allowance. |

|                                                                                                                                                                                                                                                                                                     ### Public methods                                                                                                                                                                                                                                                                                                     ||
|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` int`  | ` `[getDragDirs](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#getDragDirs(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Returns the drag directions for the provided ViewHolder.                                                                    |
| ` int`  | ` `[getMovementFlags](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#getMovementFlags(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Should return a composite flag which defines the enabled move directions in each state (idle, swiping, dragging). |
| ` int`  | ` `[getSwipeDirs](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#getSwipeDirs(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Returns the swipe directions for the provided ViewHolder.                                                                 |
| ` void` | ` `[setDefaultDragDirs](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#setDefaultDragDirs(int))`(int defaultDragDirs) ` Updates the default drag directions.                                                                                                                                                                                                                                                                                                                                                                                             |
| ` void` | ` `[setDefaultSwipeDirs](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#setDefaultSwipeDirs(int))`(int defaultSwipeDirs) ` Updates the default swipe directions.                                                                                                                                                                                                                                                                                                                                                                                         |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#)From class` `[android.support.v7.widget.helper.ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback)` ` |-------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ` boolean`                                                                                                              | ` `[canDropOver](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#canDropOver(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` current, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` target) ` Return true if the current ViewHolder can be dropped over the the target ViewHolder.                                                                                                                                                                                                                                                                                                | | ` `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder) | ` `[chooseDropTarget](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#chooseDropTarget(android.support.v7.widget.RecyclerView.ViewHolder, java.util.List<android.support.v7.widget.RecyclerView.ViewHolder>, int, int))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` selected, List<`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)`> dropTargets, int curX, int curY) ` Called by ItemTouchHelper to select a drop target from the list of ViewHolders that are under the dragged View.                                                                                                                                                                                                                                                                                                                                                        | | ` void`                                                                                                                 | ` `[clearView](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#clearView(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Called by the ItemTouchHelper when the user interaction with an element is over and it also completed its animation.                                                                                                                                                                                                                                                                                                                                                                                                                                                   | | ` int`                                                                                                                  | ` `[convertToAbsoluteDirection](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#convertToAbsoluteDirection(int, int))`(int flags, int layoutDirection) ` Converts a given set of flags to absolution direction which means[START](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#START)and[END](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#END)are replaced with[LEFT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#LEFT)and[RIGHT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#RIGHT)depending on the layout direction.                                                                                                                                                                                                                                                                                        | | ` static int`                                                                                                           | ` `[convertToRelativeDirection](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#convertToRelativeDirection(int, int))`(int flags, int layoutDirection) ` Replaces a movement direction with its relative version by taking layout direction into account.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | | ` long`                                                                                                                 | ` `[getAnimationDuration](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getAnimationDuration(android.support.v7.widget.RecyclerView, int, float, float))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, int animationType, float animateDx, float animateDy) ` Called by the ItemTouchHelper when user action finished on a ViewHolder and now the View will be animated to its final position.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` int`                                                                                                                  | ` `[getBoundingBoxMargin](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getBoundingBoxMargin())`() ` When finding views under a dragged view, by default, ItemTouchHelper searches for views that overlap with the dragged View.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` static `[ItemTouchUIUtil](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchUIUtil)   | ` `[getDefaultUIUtil](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getDefaultUIUtil())`() ` Returns the[ItemTouchUIUtil](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchUIUtil)that is used by the[ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback)class for visual changes on Views in response to user interactions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | ` float`                                                                                                                | ` `[getMoveThreshold](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getMoveThreshold(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Returns the fraction that the user should move the View to be considered as it is dragged.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | | ` abstract int`                                                                                                         | ` `[getMovementFlags](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getMovementFlags(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Should return a composite flag which defines the enabled move directions in each state (idle, swiping, dragging).                                                                                                                                                                                                                                                                                                                                                                                                                                        | | ` float`                                                                                                                | ` `[getSwipeEscapeVelocity](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getSwipeEscapeVelocity(float))`(float defaultValue) ` Defines the minimum velocity which will be considered as a swipe action by the user.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | | ` float`                                                                                                                | ` `[getSwipeThreshold](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getSwipeThreshold(android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder) ` Returns the fraction that the user should move the View to be considered as swiped.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | | ` float`                                                                                                                | ` `[getSwipeVelocityThreshold](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#getSwipeVelocityThreshold(float))`(float defaultValue) ` Defines the maximum velocity ItemTouchHelper will ever calculate for pointer movements.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` int`                                                                                                                  | ` `[interpolateOutOfBoundsScroll](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#interpolateOutOfBoundsScroll(android.support.v7.widget.RecyclerView, int, int, int, long))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, int viewSize, int viewSizeOutOfBounds, int totalSize, long msSinceStartScroll) ` Called by the ItemTouchHelper when user is dragging a view out of bounds.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | | ` boolean`                                                                                                              | ` `[isItemViewSwipeEnabled](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#isItemViewSwipeEnabled())`() ` Returns whether ItemTouchHelper should start a swipe operation if a pointer is swiped over the View.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` boolean`                                                                                                              | ` `[isLongPressDragEnabled](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#isLongPressDragEnabled())`() ` Returns whether ItemTouchHelper should start a drag and drop operation if an item is long pressed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | | ` static int`                                                                                                           | ` `[makeFlag](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#makeFlag(int, int))`(int actionState, int directions) ` Shifts the given direction flags to the offset of the given action state.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | | ` static int`                                                                                                           | ` `[makeMovementFlags](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#makeMovementFlags(int, int))`(int dragFlags, int swipeFlags) ` Convenience method to create movement flags.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | | ` void`                                                                                                                 | ` `[onChildDraw](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onChildDraw(android.graphics.Canvas, android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, float, float, int, boolean))`(`[Canvas](https://developer.android.com/reference/android/graphics/Canvas.html)` c, `[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) ` Called by ItemTouchHelper on RecyclerView's onDraw callback.                                                                                                                                                                                                                                                                                              | | ` void`                                                                                                                 | ` `[onChildDrawOver](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onChildDrawOver(android.graphics.Canvas, android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, float, float, int, boolean))`(`[Canvas](https://developer.android.com/reference/android/graphics/Canvas.html)` c, `[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) ` Called by ItemTouchHelper on RecyclerView's onDraw callback.                                                                                                                                                                                                                                                                                      | | ` abstract boolean`                                                                                                     | ` `[onMove](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onMove(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` target) ` Called when ItemTouchHelper wants to move the dragged item from its old position to the new position.                                                                                                                                                                                                                                                                                      | | ` void`                                                                                                                 | ` `[onMoved](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onMoved(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, int, android.support.v7.widget.RecyclerView.ViewHolder, int, int, int))`(`[RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)` recyclerView, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, int fromPos, `[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` target, int toPos, int x, int y) ` Called when[onMove(RecyclerView, ViewHolder, ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onMove(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder, android.support.v7.widget.RecyclerView.ViewHolder))returns true. | | ` void`                                                                                                                 | ` `[onSelectedChanged](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onSelectedChanged(android.support.v7.widget.RecyclerView.ViewHolder, int))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, int actionState) ` Called when the ViewHolder swiped or dragged by the ItemTouchHelper is changed.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | | ` abstract void`                                                                                                        | ` `[onSwiped](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#onSwiped(android.support.v7.widget.RecyclerView.ViewHolder, int))`(`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)` viewHolder, int direction) ` Called when a ViewHolder is swiped by the user.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | ||
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#)From class` java.lang.Object ` |-------------------|-------------------------------| | ` Object`         | ` clone() `                   | | ` boolean`        | ` equals(Object arg0) `       | | ` void`           | ` finalize() `                | | ` final Class<?>` | ` getClass() `                | | ` int`            | ` hashCode() `                | | ` final void`     | ` notify() `                  | | ` final void`     | ` notifyAll() `               | | ` String`         | ` toString() `                | | ` final void`     | ` wait(long arg0, int arg1) ` | | ` final void`     | ` wait(long arg0) `           | | ` final void`     | ` wait() `                    | ||

## Public constructors

### ItemTouchHelper.SimpleCallback

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
ItemTouchHelper.SimpleCallback (int dragDirs, 
                int swipeDirs)
```

Creates a Callback for the given drag and swipe allowance. These values serve as defaults and if you want to customize behavior per ViewHolder, you can override[getSwipeDirs(RecyclerView, ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#getSwipeDirs(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder))and / or[getDragDirs(RecyclerView, ViewHolder)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#getDragDirs(android.support.v7.widget.RecyclerView, android.support.v7.widget.RecyclerView.ViewHolder)).

<br />

|                                                                                                                                                                                                                                                                                                                                                                     Parameters                                                                                                                                                                                                                                                                                                                                                                     ||
|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `dragDirs`  | `int`: Binary OR of direction flags in which the Views can be dragged. Must be composed of[LEFT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#LEFT),[RIGHT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#RIGHT),[START](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#START),[END](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#END),[UP](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#UP)and[DOWN](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#DOWN). <br /> |
| `swipeDirs` | `int`: Binary OR of direction flags in which the Views can be swiped. Must be composed of[LEFT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#LEFT),[RIGHT](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#RIGHT),[START](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#START),[END](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#END),[UP](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#UP)and[DOWN](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper#DOWN). <br />  |

## Public methods

### getDragDirs

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int getDragDirs (RecyclerView recyclerView, 
                RecyclerView.ViewHolder viewHolder)
```

Returns the drag directions for the provided ViewHolder. Default implementation returns the drag directions that was set via constructor or[setDefaultDragDirs(int)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#setDefaultDragDirs(int)).

<br />

|                                                 Parameters                                                 ||
|----------------|--------------------------------------------------------------------------------------------|
| `recyclerView` | `RecyclerView`: The RecyclerView to which the ItemTouchHelper is attached to. <br />       |
| `viewHolder`   | `RecyclerView.ViewHolder`: The ViewHolder for which the swipe direction is queried. <br /> |

|                    Returns                    ||
|-------|----------------------------------------|
| `int` | A binary OR of direction flags. <br /> |

### getMovementFlags

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int getMovementFlags (RecyclerView recyclerView, 
                RecyclerView.ViewHolder viewHolder)
```

Should return a composite flag which defines the enabled move directions in each state (idle, swiping, dragging).

Instead of composing this flag manually, you can use[makeMovementFlags(int, int)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#makeMovementFlags(int, int))or[makeFlag(int, int)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback#makeFlag(int, int)).

This flag is composed of 3 sets of 8 bits, where first 8 bits are for IDLE state, next 8 bits are for SWIPE state and third 8 bits are for DRAG state. Each 8 bit sections can be constructed by simply OR'ing direction flags defined in[ItemTouchHelper](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper).

For example, if you want it to allow swiping LEFT and RIGHT but only allow starting to swipe by swiping RIGHT, you can return:  

```
      makeFlag(ACTION_STATE_IDLE, RIGHT) | makeFlag(ACTION_STATE_SWIPE, LEFT | RIGHT);
 
```
This means, allow right movement while IDLE and allow right and left movement while swiping.

<br />

<br />

|                                                    Parameters                                                     ||
|----------------|---------------------------------------------------------------------------------------------------|
| `recyclerView` | `RecyclerView`: The RecyclerView to which ItemTouchHelper is attached. <br />                     |
| `viewHolder`   | `RecyclerView.ViewHolder`: The ViewHolder for which the movement information is necessary. <br /> |

|                                    Returns                                     ||
|-------|-------------------------------------------------------------------------|
| `int` | flags specifying which movements are allowed on this ViewHolder. <br /> |

### getSwipeDirs

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
int getSwipeDirs (RecyclerView recyclerView, 
                RecyclerView.ViewHolder viewHolder)
```

Returns the swipe directions for the provided ViewHolder. Default implementation returns the swipe directions that was set via constructor or[setDefaultSwipeDirs(int)](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback#setDefaultSwipeDirs(int)).

<br />

|                                                 Parameters                                                 ||
|----------------|--------------------------------------------------------------------------------------------|
| `recyclerView` | `RecyclerView`: The RecyclerView to which the ItemTouchHelper is attached to. <br />       |
| `viewHolder`   | `RecyclerView.ViewHolder`: The ViewHolder for which the swipe direction is queried. <br /> |

|                    Returns                    ||
|-------|----------------------------------------|
| `int` | A binary OR of direction flags. <br /> |

### setDefaultDragDirs

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setDefaultDragDirs (int defaultDragDirs)
```

Updates the default drag directions. For example, you can use this method to toggle certain directions depending on your use case.

<br />

|                                            Parameters                                             ||
|-------------------|--------------------------------------------------------------------------------|
| `defaultDragDirs` | `int`: Binary OR of directions in which the ViewHolders can be dragged. <br /> |

### setDefaultSwipeDirs

added in[version 24.1.0](https://developer.android.com/topic/libraries/support-library/revisions)  

```
void setDefaultSwipeDirs (int defaultSwipeDirs)
```

Updates the default swipe directions. For example, you can use this method to toggle certain directions depending on your use case.

<br />

|                                            Parameters                                             ||
|--------------------|-------------------------------------------------------------------------------|
| `defaultSwipeDirs` | `int`: Binary OR of directions in which the ViewHolders can be swiped. <br /> |

-

  ## Interfaces

  - [ItemTouchHelper.ViewDropHandler](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.ViewDropHandler)
  - [ItemTouchUIUtil](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchUIUtil)
-

  ## Classes

  - [ItemTouchHelper](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper)
  - [ItemTouchHelper.Callback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.Callback)
  - [ItemTouchHelper.SimpleCallback](https://developer.android.com/reference/android/support/v7/widget/helper/ItemTouchHelper.SimpleCallback)