# ViewPager2.OnPageChangeCallback

Artifact: [androidx.viewpager2:viewpager2](https://developer.android.com/jetpack/androidx/releases/viewpager2) [View Source](https://cs.android.com/search?q=file:androidx/viewpager2/widget/ViewPager2.java+class:androidx.viewpager2.widget.ViewPager2.OnPageChangeCallback) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.0.0)

*** ** * ** ***


```
public abstract class ViewPager2.OnPageChangeCallback
```

<br />

*** ** * ** ***

Callback interface for responding to changing state of the selected page.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback#OnPageChangeCallback()()` |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback#onPageScrollStateChanged(int)(int state)` Called when the scroll state changes. |
| `void` | `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback#onPageScrolled(int,float,int)( int position, float positionOffset, @https://developer.android.com/reference/androidx/annotation/Px int positionOffsetPixels )` This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll. |
| `void` | `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.OnPageChangeCallback#onPageSelected(int)(int position)` This method will be invoked when a new page becomes selected. |

## Public constructors

### OnPageChangeCallback

Added in 1.0.0

```
public OnPageChangeCallback()
```

## Public methods

### onPageScrollStateChanged

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.0.0)

```
public void onPageScrollStateChanged(int state)
```

Called when the scroll state changes. Useful for discovering when the user begins dragging, when a fake drag is started, when the pager is automatically settling to the current page, or when it is fully stopped/idle. `state` can be one of `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#SCROLL_STATE_IDLE()`, `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#SCROLL_STATE_DRAGGING()` or `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#SCROLL_STATE_SETTLING()`.

### onPageScrolled

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.0.0)

```
public void onPageScrolled(
    int position,
    float positionOffset,
    @Px int positionOffsetPixels
)
```

This method will be invoked when the current page is scrolled, either as part of a programmatically initiated smooth scroll or a user initiated touch scroll.

| Parameters |
|---|---|
| `int position` | Position index of the first page currently being displayed. Page position+1 will be visible if positionOffset is nonzero. |
| `float positionOffset` | Value from \[0, 1) indicating the offset from the page at position. |
| `@https://developer.android.com/reference/androidx/annotation/Px int positionOffsetPixels` | Value in pixels indicating the offset from position. |

### onPageSelected

Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.0.0)

```
public void onPageSelected(int position)
```

This method will be invoked when a new page becomes selected. Animation is not necessarily complete.

| Parameters |
|---|---|
| `int position` | Position index of the new selected page. |