# FragmentStateAdapter.FragmentTransactionCallback

Artifact: [androidx.viewpager2:viewpager2](https://developer.android.com/jetpack/androidx/releases/viewpager2) [View Source](https://cs.android.com/search?q=file:androidx/viewpager2/adapter/FragmentStateAdapter.java+class:androidx.viewpager2.adapter.FragmentStateAdapter.FragmentTransactionCallback) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0)

*** ** * ** ***


```
public abstract class FragmentStateAdapter.FragmentTransactionCallback
```

<br />

*** ** * ** ***

Callback interface for listening to fragment lifecycle changes that happen inside the adapter.

## Summary

| ### Nested types |
|---|
| `public interface https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` Callback returned by `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentPreAdded(androidx.fragment.app.Fragment)`, `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentPreRemoved(androidx.fragment.app.Fragment)`, `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentMaxLifecyclePreUpdated(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle.State)` called after the operation ends. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#FragmentTransactionCallback()()` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentMaxLifecyclePreUpdated(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle.State)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/Lifecycle.State maxLifecycleState )` Called right before Fragment's maximum state is capped via `https://developer.android.com/reference/androidx/fragment/app/FragmentTransaction#setMaxLifecycle(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle.State)`. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentPreAdded(androidx.fragment.app.Fragment)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment)` Called right before the Fragment is added to adapter's FragmentManager. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | `https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentPreRemoved(androidx.fragment.app.Fragment)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment)` Called right before the Fragment is removed from adapter's FragmentManager. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | `@https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.ExperimentalFragmentStateAdapterApi https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback#onFragmentPreSavedInstanceState(androidx.fragment.app.Fragment)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment)` Called right before Fragment's state is being saved through a `https://developer.android.com/reference/androidx/fragment/app/FragmentManager#saveFragmentInstanceState(androidx.fragment.app.Fragment)` call. |

## Public constructors

### FragmentTransactionCallback

Added in 1.1.0

```
public FragmentTransactionCallback()
```

## Public methods

### onFragmentMaxLifecyclePreUpdated

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

```
public @NonNull FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentMaxLifecyclePreUpdated(
    @NonNull Fragment fragment,
    @NonNull Lifecycle.State maxLifecycleState
)
```

Called right before Fragment's maximum state is capped via `https://developer.android.com/reference/androidx/fragment/app/FragmentTransaction#setMaxLifecycle(androidx.fragment.app.Fragment,androidx.lifecycle.Lifecycle.State)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment` | Fragment to have its state capped |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/lifecycle/Lifecycle.State maxLifecycleState` | Ceiling state for the fragment |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | Listener called after the operation |

### onFragmentPreAdded

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

```
public @NonNull FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreAdded(@NonNull Fragment fragment)
```

Called right before the Fragment is added to adapter's FragmentManager.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment` | Fragment changing state |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | Listener called after the operation |

### onFragmentPreRemoved

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

```
public @NonNull FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreRemoved(@NonNull Fragment fragment)
```

Called right before the Fragment is removed from adapter's FragmentManager.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment` | Fragment changing state |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | Listener called after the operation |

### onFragmentPreSavedInstanceState

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

```
@FragmentStateAdapter.ExperimentalFragmentStateAdapterApi
public @NonNull FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener onFragmentPreSavedInstanceState(@NonNull Fragment fragment)
```

Called right before Fragment's state is being saved through a `https://developer.android.com/reference/androidx/fragment/app/FragmentManager#saveFragmentInstanceState(androidx.fragment.app.Fragment)` call.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment fragment` | Fragment which state is being saved |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener` | Listener called after the operation |