# RecyclerView.Recycler

added in[version 22.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:[Ctors](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#pubctors)\|[Methods](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#pubmethods)\|[Inherited Methods](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#inhmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#)  

# RecyclerView.Recycler

| 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

final

class
RecyclerView.Recycler
`  
`

extends Object


``


`

|---|-------------------------------------------------|
| java.lang.Object                                   ||
| ↳ | android.support.v7.widget.RecyclerView.Recycler |

<br />

*** ** * ** ***

A Recycler is responsible for managing scrapped or detached item views for reuse.

A "scrapped" view is a view that is still attached to its parent RecyclerView but that has been marked for removal or reuse.

Typical use of a Recycler by a[RecyclerView.LayoutManager](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager)will be to obtain views for an adapter's data set representing the data at a given position or item ID. If the view to be reused is considered "dirty" the adapter will be asked to rebind it. If not, the view can be quickly reused by the LayoutManager with no further work. Clean views that have not[requested layout](https://developer.android.com/reference/android/view/View.html#isLayoutRequested())may be repositioned by a LayoutManager without remeasurement.

<br />

## Summary

|                                                               ### Public constructors                                                               ||
|--------------------------------------------------------------------------------------------------------------------------------------------------|---|
| ` `[RecyclerView.Recycler](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#RecyclerView.Recycler())`() ` |

|                                                                                                                                                                                                                                                                                                                                                                                                                                               ### Public methods                                                                                                                                                                                                                                                                                                                                                                                                                                               ||
|---------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` void`                                                                                                                         | ` `[bindViewToPosition](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#bindViewToPosition(android.view.View, int))`(`[View](https://developer.android.com/reference/android/view/View.html)` view, int position) ` Binds the given View to the position.                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ` void`                                                                                                                         | ` `[clear](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#clear())`() ` Clear scrap views out of this recycler.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| ` int`                                                                                                                          | ` `[convertPreLayoutPositionToPostLayout](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#convertPreLayoutPositionToPostLayout(int))`(int position) ` RecyclerView provides artificial position range (item count) in pre-layout state and automatically maps these positions to[RecyclerView.Adapter](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter)positions when[getViewForPosition(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))or[bindViewToPosition(View, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#bindViewToPosition(android.view.View, int))is called. |
| ` List<`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)`>` | ` `[getScrapList](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getScrapList())`() ` Returns an unmodifiable list of ViewHolders that are currently in the scrap list.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ` `[View](https://developer.android.com/reference/android/view/View.html)                                                       | ` `[getViewForPosition](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))`(int position) ` Obtain a view initialized for the given position.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ` void`                                                                                                                         | ` `[recycleView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#recycleView(android.view.View))`(`[View](https://developer.android.com/reference/android/view/View.html)` view) ` Recycle a detached view.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| ` void`                                                                                                                         | ` `[setViewCacheSize](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#setViewCacheSize(int))`(int viewCount) ` Set the maximum number of detached, valid views we should retain for later use.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

| ### Inherited methods |
|-----------------------|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#)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

### RecyclerView.Recycler

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

```
RecyclerView.Recycler ()
```

<br />

<br />

## Public methods

### bindViewToPosition

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

```
void bindViewToPosition (View view, 
                int position)
```

Binds the given View to the position. The View can be a View previously retrieved via[getViewForPosition(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))or created by[onCreateViewHolder(ViewGroup, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter#onCreateViewHolder(android.view.ViewGroup, int)).

Generally, a LayoutManager should acquire its views via[getViewForPosition(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))and let the RecyclerView handle caching. This is a helper method for LayoutManager who wants to handle its own recycling logic.

Note that,[getViewForPosition(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))already binds the View to the position so you don't need to call this method unless you want to bind this View to another position.

<br />

|                                Parameters                                ||
|------------|--------------------------------------------------------------|
| `view`     | `View`: The view to update. <br />                           |
| `position` | `int`: The position of the item to bind to this View. <br /> |

### clear

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

```
void clear ()
```

Clear scrap views out of this recycler. Detached views contained within a recycled view pool will remain.

<br />

### convertPreLayoutPositionToPostLayout

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

```
int convertPreLayoutPositionToPostLayout (int position)
```

RecyclerView provides artificial position range (item count) in pre-layout state and automatically maps these positions to[RecyclerView.Adapter](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter)positions when[getViewForPosition(int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#getViewForPosition(int))or[bindViewToPosition(View, int)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler#bindViewToPosition(android.view.View, int))is called.

Usually, LayoutManager does not need to worry about this. However, in some cases, your LayoutManager may need to call some custom component with item positions in which case you need the actual adapter position instead of the pre layout position. You can use this method to convert a pre-layout position to adapter (post layout) position.

Note that if the provided position belongs to a deleted ViewHolder, this method will return -1.

Calling this method in post-layout state returns the same value back.

<br />

|                                                                                                           Parameters                                                                                                            ||
|------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `position` | `int`: The pre-layout position to convert. Must be greater or equal to 0 and less than[getItemCount()](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.State#getItemCount()). <br /> |

|    Returns    ||
|-------|--------|
| `int` | <br /> |

### getScrapList

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

```
List<RecyclerView.ViewHolder> getScrapList ()
```

Returns an unmodifiable list of ViewHolders that are currently in the scrap list.

<br />

|                                                                                    Returns                                                                                    ||
|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
| `List<`[RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)`>` | List of ViewHolders in the scrap list. <br /> |

### getViewForPosition

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

```
View getViewForPosition (int position)
```

Obtain a view initialized for the given position. This method should be used by[RecyclerView.LayoutManager](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager)implementations to obtain views to represent data from an[RecyclerView.Adapter](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter).

The Recycler may reuse a scrap or detached view from a shared pool if one is available for the correct view type. If the adapter has not indicated that the data at the given position has changed, the Recycler will attempt to hand back a scrap view that was previously initialized for that data without rebinding.

<br />

|                       Parameters                        ||
|------------|---------------------------------------------|
| `position` | `int`: Position to obtain a view for <br /> |

|                                                                Returns                                                                ||
|------------------------------------------------------------------------|---------------------------------------------------------------|
| [View](https://developer.android.com/reference/android/view/View.html) | A view representing the data at`position`from`adapter` <br /> |

### recycleView

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

```
void recycleView (View view)
```

Recycle a detached view. The specified view will be added to a pool of views for later rebinding and reuse.

A view must be fully detached (removed from parent) before it may be recycled. If the View is scrapped, it will be removed from scrap list.

<br />

<br />

|                    Parameters                     ||
|--------|-------------------------------------------|
| `view` | `View`: Removed view for recycling <br /> |

**See also:**

- [removeAndRecycleView(View, Recycler)](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager#removeAndRecycleView(android.view.View, android.support.v7.widget.RecyclerView.Recycler))  

### setViewCacheSize

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

```
void setViewCacheSize (int viewCount)
```

Set the maximum number of detached, valid views we should retain for later use.

<br />

|                                         Parameters                                         ||
|-------------|-------------------------------------------------------------------------------|
| `viewCount` | `int`: Number of views to keep before sending views to the shared pool <br /> |

-

  ## Annotations

  - [RecyclerView.EdgeEffectFactory.EdgeDirection](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.EdgeEffectFactory.EdgeDirection)
  - [RecyclerView.ItemAnimator.AdapterChanges](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.AdapterChanges)
-

  ## Interfaces

  - [ActionMenuView.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView.OnMenuItemClickListener)
  - [PopupMenu.OnDismissListener](https://developer.android.com/reference/android/support/v7/widget/PopupMenu.OnDismissListener)
  - [PopupMenu.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/PopupMenu.OnMenuItemClickListener)
  - [RecyclerView.ChildDrawingOrderCallback](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ChildDrawingOrderCallback)
  - [RecyclerView.ItemAnimator.ItemAnimatorFinishedListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemAnimatorFinishedListener)
  - [RecyclerView.LayoutManager.LayoutPrefetchRegistry](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.LayoutPrefetchRegistry)
  - [RecyclerView.OnChildAttachStateChangeListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnChildAttachStateChangeListener)
  - [RecyclerView.OnItemTouchListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnItemTouchListener)
  - [RecyclerView.RecyclerListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.RecyclerListener)
  - [RecyclerView.SmoothScroller.ScrollVectorProvider](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller.ScrollVectorProvider)
  - [SearchView.OnCloseListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnCloseListener)
  - [SearchView.OnQueryTextListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnQueryTextListener)
  - [SearchView.OnSuggestionListener](https://developer.android.com/reference/android/support/v7/widget/SearchView.OnSuggestionListener)
  - [ShareActionProvider.OnShareTargetSelectedListener](https://developer.android.com/reference/android/support/v7/widget/ShareActionProvider.OnShareTargetSelectedListener)
  - [ThemedSpinnerAdapter](https://developer.android.com/reference/android/support/v7/widget/ThemedSpinnerAdapter)
  - [Toolbar.OnMenuItemClickListener](https://developer.android.com/reference/android/support/v7/widget/Toolbar.OnMenuItemClickListener)
-

  ## Classes

  - [ActionMenuView](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView)
  - [ActionMenuView.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/ActionMenuView.LayoutParams)
  - [AppCompatAutoCompleteTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatAutoCompleteTextView)
  - [AppCompatButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatButton)
  - [AppCompatCheckBox](https://developer.android.com/reference/android/support/v7/widget/AppCompatCheckBox)
  - [AppCompatCheckedTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatCheckedTextView)
  - [AppCompatEditText](https://developer.android.com/reference/android/support/v7/widget/AppCompatEditText)
  - [AppCompatImageButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatImageButton)
  - [AppCompatImageView](https://developer.android.com/reference/android/support/v7/widget/AppCompatImageView)
  - [AppCompatMultiAutoCompleteTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatMultiAutoCompleteTextView)
  - [AppCompatRadioButton](https://developer.android.com/reference/android/support/v7/widget/AppCompatRadioButton)
  - [AppCompatRatingBar](https://developer.android.com/reference/android/support/v7/widget/AppCompatRatingBar)
  - [AppCompatSeekBar](https://developer.android.com/reference/android/support/v7/widget/AppCompatSeekBar)
  - [AppCompatSpinner](https://developer.android.com/reference/android/support/v7/widget/AppCompatSpinner)
  - [AppCompatTextView](https://developer.android.com/reference/android/support/v7/widget/AppCompatTextView)
  - [CardView](https://developer.android.com/reference/android/support/v7/widget/CardView)
  - [DefaultItemAnimator](https://developer.android.com/reference/android/support/v7/widget/DefaultItemAnimator)
  - [DividerItemDecoration](https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration)
  - [GridLayout](https://developer.android.com/reference/android/support/v7/widget/GridLayout)
  - [GridLayout.Alignment](https://developer.android.com/reference/android/support/v7/widget/GridLayout.Alignment)
  - [GridLayout.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/GridLayout.LayoutParams)
  - [GridLayout.Spec](https://developer.android.com/reference/android/support/v7/widget/GridLayout.Spec)
  - [GridLayoutManager](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager)
  - [GridLayoutManager.DefaultSpanSizeLookup](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.DefaultSpanSizeLookup)
  - [GridLayoutManager.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.LayoutParams)
  - [GridLayoutManager.SpanSizeLookup](https://developer.android.com/reference/android/support/v7/widget/GridLayoutManager.SpanSizeLookup)
  - [LinearLayoutCompat](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutCompat)
  - [LinearLayoutCompat.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutCompat.LayoutParams)
  - [LinearLayoutManager](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager)
  - [LinearLayoutManager.LayoutChunkResult](https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.LayoutChunkResult)
  - [LinearSmoothScroller](https://developer.android.com/reference/android/support/v7/widget/LinearSmoothScroller)
  - [LinearSnapHelper](https://developer.android.com/reference/android/support/v7/widget/LinearSnapHelper)
  - [ListPopupWindow](https://developer.android.com/reference/android/support/v7/widget/ListPopupWindow)
  - [OrientationHelper](https://developer.android.com/reference/android/support/v7/widget/OrientationHelper)
  - [PagerSnapHelper](https://developer.android.com/reference/android/support/v7/widget/PagerSnapHelper)
  - [PopupMenu](https://developer.android.com/reference/android/support/v7/widget/PopupMenu)
  - [RecyclerView](https://developer.android.com/reference/android/support/v7/widget/RecyclerView)
  - [RecyclerView.Adapter](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter)
  - [RecyclerView.AdapterDataObserver](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.AdapterDataObserver)
  - [RecyclerView.EdgeEffectFactory](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.EdgeEffectFactory)
  - [RecyclerView.ItemAnimator](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator)
  - [RecyclerView.ItemAnimator.ItemHolderInfo](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemAnimator.ItemHolderInfo)
  - [RecyclerView.ItemDecoration](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ItemDecoration)
  - [RecyclerView.LayoutManager](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager)
  - [RecyclerView.LayoutManager.Properties](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutManager.Properties)
  - [RecyclerView.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.LayoutParams)
  - [RecyclerView.OnFlingListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnFlingListener)
  - [RecyclerView.OnScrollListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.OnScrollListener)
  - [RecyclerView.RecycledViewPool](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.RecycledViewPool)
  - [RecyclerView.Recycler](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.Recycler)
  - [RecyclerView.SimpleOnItemTouchListener](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SimpleOnItemTouchListener)
  - [RecyclerView.SmoothScroller](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller)
  - [RecyclerView.SmoothScroller.Action](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.SmoothScroller.Action)
  - [RecyclerView.State](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.State)
  - [RecyclerView.ViewCacheExtension](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewCacheExtension)
  - [RecyclerView.ViewHolder](https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder)
  - [RecyclerViewAccessibilityDelegate](https://developer.android.com/reference/android/support/v7/widget/RecyclerViewAccessibilityDelegate)
  - [RecyclerViewAccessibilityDelegate.ItemDelegate](https://developer.android.com/reference/android/support/v7/widget/RecyclerViewAccessibilityDelegate.ItemDelegate)
  - [SearchView](https://developer.android.com/reference/android/support/v7/widget/SearchView)
  - [ShareActionProvider](https://developer.android.com/reference/android/support/v7/widget/ShareActionProvider)
  - [SimpleItemAnimator](https://developer.android.com/reference/android/support/v7/widget/SimpleItemAnimator)
  - [SnapHelper](https://developer.android.com/reference/android/support/v7/widget/SnapHelper)
  - [StaggeredGridLayoutManager](https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager)
  - [StaggeredGridLayoutManager.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/StaggeredGridLayoutManager.LayoutParams)
  - [SwitchCompat](https://developer.android.com/reference/android/support/v7/widget/SwitchCompat)
  - [ThemedSpinnerAdapter.Helper](https://developer.android.com/reference/android/support/v7/widget/ThemedSpinnerAdapter.Helper)
  - [Toolbar](https://developer.android.com/reference/android/support/v7/widget/Toolbar)
  - [Toolbar.LayoutParams](https://developer.android.com/reference/android/support/v7/widget/Toolbar.LayoutParams)
  - [Toolbar.SavedState](https://developer.android.com/reference/android/support/v7/widget/Toolbar.SavedState)
  - [TooltipCompat](https://developer.android.com/reference/android/support/v7/widget/TooltipCompat)