# FragmentStateAdapter.FragmentTransactionCallback

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

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback "View this page in Java")

<br />

```
abstract class FragmentStateAdapter.FragmentTransactionCallback
```

<br />

*** ** * ** ***

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

## Summary

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

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

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

## Public constructors

### FragmentTransactionCallback

Added in 1.1.0  

```
FragmentTransactionCallback()
```  

## Public functions

### onFragmentMaxLifecyclePreUpdated

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

```
fun onFragmentMaxLifecyclePreUpdated(
    fragment: Fragment,
    maxLifecycleState: Lifecycle.State
): FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener
```

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

|                                                        Parameters                                                         |
|---------------------------------------------------------------------------------------------------------------------------|-----------------------------------|
| `fragment: `[Fragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment)                     | Fragment to have its state capped |
| `maxLifecycleState: `[Lifecycle.State](https://developer.android.com/reference/kotlin/androidx/lifecycle/Lifecycle.State) | Ceiling state for the fragment    |

|                                                                                                         Returns                                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| [FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener](https://developer.android.com/reference/kotlin/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)  

```
fun onFragmentPreAdded(fragment: Fragment): FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener
```

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

|                                              Parameters                                               |
|-------------------------------------------------------------------------------------------------------|-------------------------|
| `fragment: `[Fragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment) | Fragment changing state |

|                                                                                                         Returns                                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| [FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener](https://developer.android.com/reference/kotlin/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)  

```
fun onFragmentPreRemoved(fragment: Fragment): FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener
```

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

|                                              Parameters                                               |
|-------------------------------------------------------------------------------------------------------|-------------------------|
| `fragment: `[Fragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment) | Fragment changing state |

|                                                                                                         Returns                                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| [FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener](https://developer.android.com/reference/kotlin/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
fun onFragmentPreSavedInstanceState(fragment: Fragment): FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener
```

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

|                                              Parameters                                               |
|-------------------------------------------------------------------------------------------------------|-------------------------------------|
| `fragment: `[Fragment](https://developer.android.com/reference/kotlin/androidx/fragment/app/Fragment) | Fragment which state is being saved |

|                                                                                                         Returns                                                                                                         |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------|
| [FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener](https://developer.android.com/reference/kotlin/androidx/viewpager2/adapter/FragmentStateAdapter.FragmentTransactionCallback.OnPostEventListener) | Listener called after the operation |