# NavOptions.Builder

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavOptions.+class:androidx.navigation.NavOptions.Builder) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/navigation#1.0.0)

*** ** * ** ***

Common/AllAndroid/JVMJavaScript
- Cmn

  ```
  class NavOptions.Builder
  ```

*** ** * ** ***

Builder for constructing new instances of NavOptions.

## Summary

| ### Public constructors |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#Builder()()` | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#Builder()()` | Cmn |

| ### Public functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#build()()` | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setEnterAnim(kotlin.Int)(enterAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets a custom Animation or Animator resource for the enter animation. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setExitAnim(kotlin.Int)(exitAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets a custom Animation or Animator resource for the exit animation. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setLaunchSingleTop(kotlin.Boolean)(singleTop: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Launch a navigation target as single-top if you are making a lateral navigation between instances of the same target (e.g. detail pages about similar data items) that should not preserve history. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopEnterAnim(kotlin.Int)(popEnterAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets a custom Animation or Animator resource for the enter animation when popping off the back stack. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopExitAnim(kotlin.Int)(popExitAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets a custom Animation or Animator resource for the exit animation when popping off the back stack. | android |
| `inline https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Boolean,kotlin.Boolean)(inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Pop up to a given destination before navigating. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Int,kotlin.Boolean,kotlin.Boolean)(destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Pop up to a given destination before navigating. | android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Pop up to a given destination before navigating. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html> https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Any,kotlin.Boolean,kotlin.Boolean)(route: T, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Pop up to a given destination before navigating. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)(route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?, inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Pop up to a given destination before navigating. | Cmn android |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)(restoreState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Whether this navigation action should restore any state previously saved by `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)` or the `popUpToSaveState` attribute. | Cmn android |

## Public constructors

### Builder

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

```
Builder()
```

### Builder

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

```
Builder()
```

## Public functions

### build

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

```
fun build(): NavOptions
```

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions` | a constructed NavOptions |

### setEnterAnim

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

```
fun setEnterAnim(enterAnim: @AnimRes @AnimatorRes Int): NavOptions.Builder
```

Sets a custom Animation or Animator resource for the enter animation.

Note: Animator resources are not supported for navigating to a new Activity

| Parameters |
|---|---|
| `enterAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Custom animation to run |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#enterAnim()` |   |

### setExitAnim

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

```
fun setExitAnim(exitAnim: @AnimRes @AnimatorRes Int): NavOptions.Builder
```

Sets a custom Animation or Animator resource for the exit animation.

Note: Animator resources are not supported for navigating to a new Activity

| Parameters |
|---|---|
| `exitAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Custom animation to run |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#exitAnim()` |   |

### setLaunchSingleTop

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

```
fun setLaunchSingleTop(singleTop: Boolean): NavOptions.Builder
```

Launch a navigation target as single-top if you are making a lateral navigation between instances of the same target (e.g. detail pages about similar data items) that should not preserve history.

| Parameters |
|---|---|
| `singleTop: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to launch as single-top |

### setPopEnterAnim

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

```
fun setPopEnterAnim(popEnterAnim: @AnimRes @AnimatorRes Int): NavOptions.Builder
```

Sets a custom Animation or Animator resource for the enter animation when popping off the back stack.

Note: Animator resources are not supported for navigating to a new Activity

| Parameters |
|---|---|
| `popEnterAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Custom animation to run |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popEnterAnim()` |   |

### setPopExitAnim

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

```
fun setPopExitAnim(popExitAnim: @AnimRes @AnimatorRes Int): NavOptions.Builder
```

Sets a custom Animation or Animator resource for the exit animation when popping off the back stack.

Note: Animator resources are not supported for navigating to a new Activity

| Parameters |
|---|---|
| `popExitAnim: @https://developer.android.com/reference/kotlin/androidx/annotation/AnimRes @https://developer.android.com/reference/kotlin/androidx/annotation/AnimatorRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | Custom animation to run |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popExitAnim()` |   |

### setPopUpTo

Cmn android

```
inline fun <T : Any> setPopUpTo(inclusive: Boolean, saveState: Boolean = false): NavOptions.Builder
```

Pop up to a given destination before navigating. This pops all non-matching destinations from the back stack until this destination is found.

| Parameters |
|---|---|
| `<T : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html>` | route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` for destination to pop up to, clearing all intervening destinations. |
| `inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to also pop the given destination from the back stack. |
| `saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | true if the back stack and the state of all destinations between the current destination and `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Boolean,kotlin.Boolean)` should be saved for later restoration via `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)` or the `restoreState` attribute using the same route from `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` as `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRouteClass()` (note: this matching ID is true if `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Boolean,kotlin.Boolean)` is true. If `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Boolean,kotlin.Boolean)` is false, this matching ID is the id of the last destination that is popped). |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRoute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#isPopUpToInclusive()` |   |

### setPopUpTo

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

```
fun setPopUpTo(
    destinationId: @IdRes Int,
    inclusive: Boolean,
    saveState: Boolean = false
): NavOptions.Builder
```

Pop up to a given destination before navigating. This pops all non-matching destinations from the back stack until this destination is found.

| Parameters |
|---|---|
| `destinationId: @https://developer.android.com/reference/kotlin/androidx/annotation/IdRes https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The destination to pop up to, clearing all intervening destinations. |
| `inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to also pop the given destination from the back stack. |
| `saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | true if the back stack and the state of all destinations between the current destination and `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Int,kotlin.Boolean,kotlin.Boolean)` should be saved for later restoration via `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)` or the `restoreState` attribute using the same ID as `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#popUpToId()` (note: this matching ID is true if `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Int,kotlin.Boolean,kotlin.Boolean)` is true. If `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Int,kotlin.Boolean,kotlin.Boolean)` is false, this matching ID is the id of the last destination that is popped). |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToId()` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#isPopUpToInclusive()` |   |

### setPopUpTo

Cmn android Added in [2.9.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.9.0)

```
fun <T : Any> setPopUpTo(
    route: KClass<T>,
    inclusive: Boolean,
    saveState: Boolean = false
): NavOptions.Builder
```

Pop up to a given destination before navigating. This pops all non-matching destinations from the back stack until this destination is found.

| Parameters |
|---|---|
| `route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<T>` | from the `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` of the destination `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)` to pop up to, clearing all intervening destinations. |
| `inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to also pop the given destination from the back stack. |
| `saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | true if the back stack and the state of all destinations between the current destination and `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)` should be saved for later restoration via `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)` or the `restoreState` attribute using the same route from `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` as `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRouteClass()` (note: this matching ID is true if `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)` is true. If `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.reflect.KClass,kotlin.Boolean,kotlin.Boolean)` is false, this matching ID is the id of the last destination that is popped). |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRoute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#isPopUpToInclusive()` |   |

### setPopUpTo

Cmn android Added in [2.8.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.8.0)

```
fun <T : Any> setPopUpTo(route: T, inclusive: Boolean, saveState: Boolean = false): NavOptions.Builder
```

Pop up to a given destination before navigating. This pops all non-matching destinations from the back stack until this destination is found.

| Parameters |
|---|---|
| `route: T` | route from an Object for destination to pop up to, clearing all intervening destinations. |
| `inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to also pop the given destination from the back stack. |
| `saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | true if the back stack and the state of all destinations between the current destination and `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Any,kotlin.Boolean,kotlin.Boolean)` should be saved for later restoration via `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)` or the `restoreState` attribute using the same route from an Object as `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRouteObject()` (note: this matching ID is true if `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Any,kotlin.Boolean,kotlin.Boolean)` is true. If `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.Any,kotlin.Boolean,kotlin.Boolean)` is false, this matching ID is the id of the last destination that is popped). |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRoute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#isPopUpToInclusive()` |   |

### setPopUpTo

Cmn android Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun setPopUpTo(route: String?, inclusive: Boolean, saveState: Boolean = false): NavOptions.Builder
```

Pop up to a given destination before navigating. This pops all non-matching destinations from the back stack until this destination is found.

| Parameters |
|---|---|
| `route: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html?` | route for destination to pop up to, clearing all intervening destinations. |
| `inclusive: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | true to also pop the given destination from the back stack. |
| `saveState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = false` | true if the back stack and the state of all destinations between the current destination and `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)` should be saved for later restoration via `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setRestoreState(kotlin.Boolean)` or the `restoreState` attribute using the same ID as `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRoute()` (note: this matching ID is true if `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)` is true. If `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)` is false, this matching ID is the id of the last destination that is popped). |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder` | this Builder |

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#popUpToRoute()` |   |
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#isPopUpToInclusive()` |   |

### setRestoreState

Cmn android Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0)

```
fun setRestoreState(restoreState: Boolean): NavOptions.Builder
```

Whether this navigation action should restore any state previously saved by `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions.Builder#setPopUpTo(kotlin.String,kotlin.Boolean,kotlin.Boolean)` or the `popUpToSaveState` attribute. If no state was previously saved with the destination ID being navigated to, this has no effect.