# ViewPager2.PageTransformer

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.PageTransformer) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.0.0)

*** ** * ** ***


```
public interface ViewPager2.PageTransformer
```

<br />

Known direct subclasses [CompositePageTransformer](https://developer.android.com/reference/androidx/viewpager2/widget/CompositePageTransformer), [MarginPageTransformer](https://developer.android.com/reference/androidx/viewpager2/widget/MarginPageTransformer)

|---|---|
| `https://developer.android.com/reference/androidx/viewpager2/widget/CompositePageTransformer` | Allows for combining multiple `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.PageTransformer` objects. |
| `https://developer.android.com/reference/androidx/viewpager2/widget/MarginPageTransformer` | Adds space between pages via the `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.PageTransformer` API. |

*** ** * ** ***

A PageTransformer is invoked whenever a visible/attached page is scrolled. This offers an opportunity for the application to apply a custom transformation to the page views using animation properties.

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2.PageTransformer#transformPage(android.view.View,float)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/view/View.html page, float position)` Apply a property transformation to the given page. |

## Public methods

### transformPage

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

```
abstract void transformPage(@NonNull View page, float position)
```

Apply a property transformation to the given page.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/view/View.html page` | Apply the transformation to this page |
| `float position` | Position of page relative to the current front-and-center position of the pager. 0 is front and center. 1 is one full page position to the right, and -2 is two pages to the left. Minimum / maximum observed values depend on how many pages we keep attached, which depends on offscreenPageLimit. |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/viewpager2/widget/ViewPager2#setOffscreenPageLimit(int)` |   |