# NavDisplay.PredictivePopTransitionKey

Artifact: [androidx.navigation3:navigation3-ui](https://developer.android.com/jetpack/androidx/releases/navigation3) [View Source](https://cs.android.com/search?q=file:androidx/navigation3/ui/NavDisplay.kt+class:androidx.navigation3.ui.NavDisplay.PredictivePopTransitionKey) Added in [1.1.0](https://developer.android.com/jetpack/androidx/releases/navigation3#1.1.0) Common/AllAndroid/JVM
- Cmn

  ```
  object NavDisplay.PredictivePopTransitionKey : NavMetadataKey<AnimatedContentTransitionScope<Scene<*>>.(Int) -> ContentTransform?>
  ```

*** ** * ** ***

The key for `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` or `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene#metadata()` to notify the `https://developer.android.com/reference/kotlin/androidx/navigation3/ui/NavDisplay` of how the content should be animated when popping from backstack using a Predictive back gesture.

**IMPORTANT** `https://developer.android.com/reference/kotlin/androidx/navigation3/ui/NavDisplay` only looks at the `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene#metadata()` to determine the final `https://developer.android.com/reference/kotlin/androidx/compose/animation/ContentTransform`. It is the responsibility of the `https://developer.android.com/reference/kotlin/androidx/navigation3/scene/Scene#metadata()` to decide which `https://developer.android.com/reference/kotlin/androidx/compose/animation/ContentTransform` to return, whether that be from the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/NavEntry#metadata()` or something custom.

**HOW TO USE** Within the `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/package-summary#metadata(kotlin.Function1)` DSL, invoke `https://developer.android.com/reference/kotlin/androidx/navigation3/runtime/MetadataScope#put(androidx.navigation3.runtime.NavMetadataKey,kotlin.Any)` and pass `https://developer.android.com/reference/kotlin/androidx/navigation3/ui/NavDisplay.PredictivePopTransitionKey` as the key. The `value: AnimatedContentTransitionScope<Scene<*>>.(Int) -> ContentTransform?` should be the `https://developer.android.com/reference/kotlin/androidx/compose/animation/ContentTransform` to be used when popping from backstack using a Predictive back gesture.

```kotlin
import androidx.compose.foundation.layout.Box
import androidx.navigation3.runtime.NavEntry
import androidx.navigation3.runtime.entryProvider
import androidx.navigation3.runtime.metadata
import androidx.navigation3.runtime.rememberNavBackStack
import androidx.navigation3.runtime.rememberSaveableStateHolderNavEntryDecorator
import androidx.navigation3.scene.Scene
import androidx.navigation3.scene.SceneStrategy
import androidx.navigation3.ui.NavDisplay

val backStack = rememberNavBackStack(A)
NavDisplay(
    backStack,
    onBack = { backStack.removeLastOrNull() },
    entryDecorators = listOf(rememberSaveableStateHolderNavEntryDecorator()),
    // the Scene overrides the NavEntry's slide vertical with slide horizontal transitions
    sceneStrategies = listOf(SceneOverrideEntryTransitionsSceneStrategy()),
    entryProvider =
        entryProvider {
            entry<A> { BlueBox("A") { backStack.add(B) } }
            // the entry defines slide vertical transitions
            entry<B>(
                metadata =
                    metadata {
                        put(NavDisplay.TransitionKey) { slideVertical }
                        put(NavDisplay.PopTransitionKey) { slideVertical }
                        put(NavDisplay.PredictivePopTransitionKey, { _: Int -> slideVertical })
                    }
            ) {
                RedBox("B")
            }
        },
)
```