# androidx.recyclerview.widget

*** ** * ** ***

## Annotations

|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.EdgeEffectFactory.EdgeDirection` |   |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator.AdapterChanges` | The set of flags that might be passed to `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator#recordPreLayoutInformation(androidx.recyclerview.widget.RecyclerView.State,androidx.recyclerview.widget.RecyclerView.ViewHolder,int,java.util.List<java.lang.Object>)`. |

## Interfaces

|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListDiffer.ListListener` | Listener for when the current List is updated. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper.ViewDropHandler` | An interface which can be implemented by LayoutManager for better integration with `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchUIUtil` | Utility class for `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper` which handles item transformations for different API versions. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ListUpdateCallback` | An interface that can receive Update operations that are applied to a list. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ChildDrawingOrderCallback` | A callback interface that can be used to alter the drawing order of RecyclerView children. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator.ItemAnimatorFinishedListener` | This interface is used to inform listeners when all pending or running animations in an ItemAnimator are finished. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager.LayoutPrefetchRegistry` | Interface for LayoutManagers to request items to be prefetched, based on position, with specified distance from viewport, which indicates priority. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.OnChildAttachStateChangeListener` | A Listener interface that can be attached to a RecylcerView to get notified whenever a ViewHolder is attached to or detached from RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.OnItemTouchListener` | An OnItemTouchListener allows the application to intercept touch events in progress at the view hierarchy level of the RecyclerView before those touch events are considered for RecyclerView's own scrolling behavior. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.RecyclerListener` | A RecyclerListener can be set on a RecyclerView to receive messages whenever a view is recycled. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller.ScrollVectorProvider` | An interface which is optionally implemented by custom `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager` to provide a hint to a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller` about the location of the target position. |

## Classes

|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/AdapterListUpdateCallback` | ListUpdateCallback that dispatches update events to the given adapter. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncDifferConfig` | Configuration object for `https://developer.android.com/reference/androidx/recyclerview/widget/ListAdapter`, `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListDiffer`, and similar background-thread list diffing adapter logic. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncDifferConfig.Builder` | Builder class for `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncDifferConfig`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListDiffer` | Helper for computing the difference between two lists via `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil` on a background thread. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListUtil` | A utility class that supports asynchronous content loading. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListUtil.DataCallback` | The callback that provides data access for `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListUtil`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListUtil.ViewCallback` | The callback that links `https://developer.android.com/reference/androidx/recyclerview/widget/AsyncListUtil` with the list view. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/BatchingListUpdateCallback` | Wraps a `https://developer.android.com/reference/androidx/recyclerview/widget/ListUpdateCallback` callback and batches operations that can be merged. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter` | An `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter` implementation that presents the contents of multiple adapters in sequence. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter.Config` | The configuration object for a `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter.Config.Builder` | The builder for `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter.Config` class. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DefaultItemAnimator` | This implementation of `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator` provides basic animations on remove, add, and move events that happen to the items in a RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil` | DiffUtil is a utility class that calculates the difference between two lists and outputs a list of update operations that converts the first list into the second one. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil.Callback` | A Callback class used by DiffUtil while calculating the diff between two lists. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil.DiffResult` | This class holds the information about the result of a `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil#calculateDiff(androidx.recyclerview.widget.DiffUtil.Callback,boolean)` call. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DiffUtil.ItemCallback` | Callback for calculating the diff between two non-null items in a list. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/DividerItemDecoration` | DividerItemDecoration is a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemDecoration` that can be used as a divider between items of a `https://developer.android.com/reference/androidx/recyclerview/widget/LinearLayoutManager`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager` | A `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager` implementations that lays out items in a grid. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager.DefaultSpanSizeLookup` | Default implementation for `https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager.LayoutParams` | LayoutParams used by GridLayoutManager. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/GridLayoutManager.SpanSizeLookup` | A helper class to provide the number of spans each item occupies. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper` | This is a utility class to add swipe to dismiss and drag \&drop support to RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper.Callback` | This class is the contract between ItemTouchHelper and your application. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ItemTouchHelper.SimpleCallback` | A simple wrapper to the default Callback which you can construct with drag and swipe directions and this class will handle the flag callbacks. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/LinearLayoutManager` | A `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager` implementation which provides similar functionality to `https://developer.android.com/reference/android/widget/ListView.html`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/LinearLayoutManager.LayoutChunkResult` |   |
| `https://developer.android.com/reference/androidx/recyclerview/widget/LinearSmoothScroller` | `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller` implementation which uses a `https://developer.android.com/reference/android/view/animation/LinearInterpolator.html` until the target position becomes a child of the RecyclerView and then uses a `https://developer.android.com/reference/android/view/animation/DecelerateInterpolator.html` to slowly approach to target position. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/LinearSnapHelper` | Implementation of the `https://developer.android.com/reference/androidx/recyclerview/widget/SnapHelper` supporting snapping in either vertical or horizontal orientation. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/ListAdapter` | `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter` base class for presenting List data in a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView`, including computing diffs between Lists on a background thread. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/OrientationHelper` | Helper class for LayoutManagers to abstract measurements depending on the View's orientation. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/PagerSnapHelper` | Implementation of the `https://developer.android.com/reference/androidx/recyclerview/widget/SnapHelper` supporting pager style snapping in either vertical or horizontal orientation. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView` | A flexible view for providing a limited window into a large data set. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter` | Base class for an Adapter |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.AdapterDataObserver` | Observer base class for watching changes to an `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.EdgeEffectFactory` | EdgeEffectFactory lets you customize the over-scroll edge effect for RecyclerViews. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator` | This class defines the animations that take place on items as changes are made to the adapter. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemAnimator.ItemHolderInfo` | A simple data structure that holds information about an item's bounds. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ItemDecoration` | An ItemDecoration allows the application to add a special drawing and layout offset to specific item views from the adapter's data set. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager` | A `LayoutManager` is responsible for measuring and positioning item views within a `RecyclerView` as well as determining the policy for when to recycle item views that are no longer visible to the user. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutManager.Properties` | Some general properties that a LayoutManager may want to use. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.LayoutParams` | `https://developer.android.com/reference/android/view/ViewGroup.MarginLayoutParams.html` subclass for children of `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.OnFlingListener` | This class defines the behavior of fling if the developer wishes to handle it. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.OnScrollListener` | An OnScrollListener can be added to a RecyclerView to receive messages when a scrolling event has occurred on that RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.RecycledViewPool` | RecycledViewPool lets you share Views between multiple RecyclerViews. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Recycler` | A Recycler is responsible for managing scrapped or detached item views for reuse. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SimpleOnItemTouchListener` | An implementation of `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.OnItemTouchListener` that has empty method bodies and default return values. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller` | Base class for smooth scrolling. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller.Action` | Holds information about a smooth scroll request by a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.SmoothScroller`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.State` | Contains useful information about the current RecyclerView state like target scroll position or view focus. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewCacheExtension` | ViewCacheExtension is a helper class to provide an additional layer of view caching that can be controlled by the developer. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.ViewHolder` | A ViewHolder describes an item view and metadata about its place within the RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerViewAccessibilityDelegate` | The AccessibilityDelegate used by RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerViewAccessibilityDelegate.ItemDelegate` | The default implementation of accessibility delegate for the individual items of the RecyclerView. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SimpleItemAnimator` | A wrapper class for ItemAnimator that records View bounds and decides whether it should run move, change, add or remove animations. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SnapHelper` | Class intended to support snapping for a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList` | A Sorted list implementation that can keep items in order and also notify for changes in the list such that it can be bound to a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList.BatchedCallback` | A callback implementation that can batch notify events dispatched by the SortedList. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList.Callback` | The class that controls the behavior of the `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/SortedListAdapterCallback` | A `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList.Callback` implementation that can bind a `https://developer.android.com/reference/androidx/recyclerview/widget/SortedList` to a `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/StaggeredGridLayoutManager` | A LayoutManager that lays out children in a staggered grid formation. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/StaggeredGridLayoutManager.LayoutParams` | LayoutParams used by StaggeredGridLayoutManager. |

## Enums

|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter.Config.StableIdMode` | Defines how `https://developer.android.com/reference/androidx/recyclerview/widget/ConcatAdapter` handle stable ids (`https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter#hasStableIds()`). |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy` | Defines how this Adapter wants to restore its state after a view reconstruction (e.g. configuration change). |