# RecyclerView.Adapter.StateRestorationPolicy

Artifact: [androidx.recyclerview:recyclerview](https://developer.android.com/jetpack/androidx/releases/recyclerview) [View Source](https://cs.android.com/search?q=file:androidx/recyclerview/widget/RecyclerView.java+class:androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy) Added in [1.2.0](https://developer.android.com/jetpack/androidx/releases/recyclerview#1.2.0)

*** ** * ** ***


```
public enum RecyclerView.Adapter.StateRestorationPolicy
```

<br />

*** ** * ** ***

Defines how this Adapter wants to restore its state after a view reconstruction (e.g. configuration change).

## Summary

| ### Enum Values |
|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#ALLOW` | Adapter is ready to restore State immediately, RecyclerView will provide the state to the LayoutManager in the next layout pass. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#PREVENT` | RecyclerView will not restore the state for the Adapter until a call to `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter#setStateRestorationPolicy(androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy)` is made with either `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#ALLOW` or `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#PREVENT_WHEN_EMPTY`. |
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#PREVENT_WHEN_EMPTY` | Adapter is ready to restore State when it has more than 0 items. |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy` | `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String.html name)` Returns the enum constant of this type with the specified name. |
| `static RecyclerView.Adapter.StateRestorationPolicy[]` | `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#values()()` Returns an array containing the constants of this enum type, in the order they're declared. |

## Enum Values

### ALLOW

```
RecyclerView.Adapter.StateRestorationPolicy RecyclerView.Adapter.StateRestorationPolicy.ALLOW
```

Adapter is ready to restore State immediately, RecyclerView will provide the state to the LayoutManager in the next layout pass.

### PREVENT

```
RecyclerView.Adapter.StateRestorationPolicy RecyclerView.Adapter.StateRestorationPolicy.PREVENT
```

RecyclerView will not restore the state for the Adapter until a call to `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter#setStateRestorationPolicy(androidx.recyclerview.widget.RecyclerView.Adapter.StateRestorationPolicy)` is made with either `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#ALLOW` or `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy#PREVENT_WHEN_EMPTY`.

### PREVENT_WHEN_EMPTY

```
RecyclerView.Adapter.StateRestorationPolicy RecyclerView.Adapter.StateRestorationPolicy.PREVENT_WHEN_EMPTY
```

Adapter is ready to restore State when it has more than 0 items. RecyclerView will provide the state to the LayoutManager as soon as the Adapter has 1 or more items.

## Public methods

### valueOf

Added in 1.2.0

```
public static RecyclerView.Adapter.StateRestorationPolicy valueOf(String name)
```

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.Adapter.StateRestorationPolicy` | the enum constant with the specified name |

| Throws |
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException.html` | if this enum type has no constant with the specified name |

### values

Added in 1.2.0

```
public static RecyclerView.Adapter.StateRestorationPolicy[] values()
```

Returns an array containing the constants of this enum type, in the order they're declared. This method may be used to iterate over the constants.

| Returns |
|---|---|
| `RecyclerView.Adapter.StateRestorationPolicy[]` | an array containing the constants of this enum type, in the order they're declared |