# ViewPager.OnPageChangeListener

# 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)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/viewpager/widget/ViewPager.OnPageChangeListener "View this page in Java")

<br />

```
interface ViewPager.OnPageChangeListener
```

<br />

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

|-------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [ViewPager.SimpleOnPageChangeListener](https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager.SimpleOnPageChangeListener) | Simple implementation of the[OnPageChangeListener](https://developer.android.com/reference/kotlin/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 functions                              |
|-------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onPageScrollStateChanged](https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager.OnPageChangeListener#onPageScrollStateChanged(int))`(state: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` Called when the scroll state changes.                                                                                                                                                                                                                                                                                                                                                                                                                    |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onPageScrolled](https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager.OnPageChangeListener#onPageScrolled(int,float,int))`(` ` position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`,` ` positionOffset: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`,` ` positionOffsetPixels: @`[Px](https://developer.android.com/reference/kotlin/androidx/annotation/Px)` `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) `)` 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. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html) | [onPageSelected](https://developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager.OnPageChangeListener#onPageSelected(int))`(position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)`)` This method will be invoked when a new page becomes selected.                                                                                                                                                                                                                                                                                                                                                                                                             |

## Public functions

### onPageScrollStateChanged

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

```
fun onPageScrollStateChanged(state: Int): Unit
```

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                                      |
|--------------------------------------------------------------------------------------|-----------------------|
| `state: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | The new scroll state. |

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

### onPageScrolled

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

```
fun onPageScrolled(
    position: Int,
    positionOffset: Float,
    positionOffsetPixels: @Px Int
): Unit
```

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                                                                                     |
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|
| `position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)                                                                                            | Position index of the first page currently being displayed. Page position+1 will be visible if positionOffset is nonzero. |
| `positionOffset: `[Float](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)                                                                                  | Value from \[0, 1) indicating the offset from the page at position.                                                       |
| `positionOffsetPixels: @`[Px](https://developer.android.com/reference/kotlin/androidx/annotation/Px)` `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | 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)  

```
fun onPageSelected(position: Int): Unit
```

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

|                                       Parameters                                        |
|-----------------------------------------------------------------------------------------|------------------------------------------|
| `position: `[Int](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html) | Position index of the new selected page. |