# ViewPager.OnPageChangeListener

Artifact: [androidx.viewpager:viewpager](https://developer.android.com/jetpack/androidx/releases/viewpager) [View Source](https://cs.android.com/search?q=file:androidx/viewpager/widget/ViewPager.java+class:androidx.viewpager.widget.ViewPager.OnPageChangeListener) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/viewpager#1.1.0)

*** ** * ** ***


```
public interface ViewPager.OnPageChangeListener
```

<br />

Known direct subclasses [ViewPager.SimpleOnPageChangeListener](https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.SimpleOnPageChangeListener)

|---|---|
| `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.SimpleOnPageChangeListener` | Simple implementation of the `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.OnPageChangeListener` interface with stub implementations of each method. |

*** ** * ** ***

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

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.OnPageChangeListener#onPageScrollStateChanged(int)(int state)` Called when the scroll state changes. |
| `abstract void` | `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.OnPageChangeListener#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. |
| `abstract void` | `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.OnPageChangeListener#onPageSelected(int)(int position)` This method will be invoked when a new page becomes selected. |

## Public methods

### onPageScrollStateChanged

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

```
abstract void onPageScrollStateChanged(int state)
```

Called when the scroll state changes. Useful for discovering when the user begins dragging, when the pager is automatically settling to the current page, or when it is fully stopped/idle.

| Parameters |
|---|---|
| `int state` | The new scroll state. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager#SCROLL_STATE_IDLE()` |   |
| `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager#SCROLL_STATE_DRAGGING()` |   |
| `https://developer.android.com/reference/androidx/viewpager/widget/ViewPager#SCROLL_STATE_SETTLING()` |   |

### onPageScrolled

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

```
abstract 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.1.0](https://developer.android.com/jetpack/androidx/releases/viewpager#1.1.0)

```
abstract 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. |