# DialogNavigator

Artifact: [androidx.navigation:navigation-compose](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/compose/DialogNavigator.kt+class:androidx.navigation.compose.DialogNavigator) Added in [2.4.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.4.0) Common/AllAndroid/JVM
- Cmn

  ```
  @Navigator.Name(value = "dialog")
  class DialogNavigator : Navigator<DialogNavigator.Destination>
  ```

|---|---|---|
| [kotlin.Any](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html) |||
| ↳ | [androidx.navigation.Navigator](https://developer.android.com/reference/kotlin/androidx/navigation/Navigator)\<[DialogNavigator.Destination](https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination)\> ||
|   | ↳ | [androidx.navigation.compose.DialogNavigator](https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator) |

*** ** * ** ***

Navigator that navigates through `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable`s that will be hosted within a `https://developer.android.com/reference/kotlin/androidx/compose/ui/window/Dialog.composable#Dialog(kotlin.Function0,androidx.compose.ui.window.DialogProperties,kotlin.Function0)`. Every destination using this Navigator must set a valid `https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable` by setting it directly on an instantiated `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination` or calling `https://developer.android.com/reference/kotlin/androidx/navigation/compose/package-summary#(androidx.navigation.NavGraphBuilder).dialog(kotlin.String,kotlin.collections.List,kotlin.collections.List,androidx.compose.ui.window.DialogProperties,kotlin.Function1)`.

## Summary

| ### Nested types |
|---|
| `@https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination.ClassType(value = https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable) class https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination : https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination, https://developer.android.com/reference/kotlin/androidx/navigation/FloatingWindow` NavDestination specific to `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator` |

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

| ### Public functions |
|---|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination` | `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator#createDestination()()` Construct a new NavDestination associated with this Navigator. | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator#navigate(kotlin.collections.List,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)( entries: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>, navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?, navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras? )` Navigate to a destination. | Cmn |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator#popBackStack(androidx.navigation.NavBackStackEntry,kotlin.Boolean)(popUpTo: https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry, savedState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Attempt to pop this navigator's back stack, performing the appropriate navigation. | Cmn |

### Inherited functions

From [androidx.navigation.Navigator](https://developer.android.com/reference/kotlin/androidx/navigation/Navigator) `open https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination?` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#navigate(androidx.navigation.NavDestination,androidx.savedstate.SavedState,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)(
destination: https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination,
args: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?,
navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?,
navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?
)`

Navigate to a destination.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `@https://developer.android.com/reference/kotlin/androidx/annotation/CallSuper
https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onAttach(androidx.navigation.NavigatorState)(state: https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorState)`

Indicator that this Navigator is actively being used by a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onLaunchSingleTop(androidx.navigation.NavBackStackEntry)(backStackEntry: https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry)`

Informational callback indicating that the given `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onLaunchSingleTop(androidx.navigation.NavBackStackEntry)` has been affected by a `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#shouldLaunchSingleTop()` operation.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onRestoreState(androidx.savedstate.SavedState)(savedState: https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState)`

Restore any state previously saved in `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onSaveState()`.
Cmn `open https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState?` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onSaveState()()`

Called to ask for a `https://developer.android.com/reference/kotlin/androidx/savedstate/SavedState` representing the Navigator's state.
Cmn `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#popBackStack()()`

Attempt to pop this navigator's back stack, performing the appropriate navigation.
Cmn

### Inherited properties

From [androidx.navigation.Navigator](https://developer.android.com/reference/kotlin/androidx/navigation/Navigator) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#isAttached()`

Whether this Navigator is actively being used by a `https://developer.android.com/reference/kotlin/androidx/navigation/NavController`.
Cmn `https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorState` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#state()`

The state of the Navigator is the communication conduit between the Navigator and the `https://developer.android.com/reference/kotlin/androidx/navigation/NavController` that has called `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#onAttach(androidx.navigation.NavigatorState)`.
Cmn

## Public constructors

### DialogNavigator

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

```
DialogNavigator()
```

## Public functions

### createDestination

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

```
open fun createDestination(): DialogNavigator.Destination
```

Construct a new NavDestination associated with this Navigator.

Any initialization of the destination should be done in the destination's constructor as it is not guaranteed that every destination will be created through this method.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/compose/DialogNavigator.Destination` | a new NavDestination |

### navigate

Cmn

```
open fun navigate(
    entries: List<NavBackStackEntry>,
    navOptions: NavOptions?,
    navigatorExtras: Navigator.Extras?
): Unit
```

Navigate to a destination.

Requests navigation to a given destination associated with this navigator in the navigation graph. This method generally should not be called directly; `https://developer.android.com/reference/kotlin/androidx/navigation/NavController` will delegate to it when appropriate.

| Parameters |
|---|---|
| `entries: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>` | destination(s) to navigate to |
| `navOptions: https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions?` | additional options for navigation |
| `navigatorExtras: https://developer.android.com/reference/kotlin/androidx/navigation/Navigator.Extras?` | extras unique to your Navigator. |

### popBackStack

Cmn

```
open fun popBackStack(popUpTo: NavBackStackEntry, savedState: Boolean): Unit
```

Attempt to pop this navigator's back stack, performing the appropriate navigation.

All destinations back to `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#popBackStack(androidx.navigation.NavBackStackEntry,kotlin.Boolean)` should be popped off the back stack.

| Parameters |
|---|---|
| `popUpTo: https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` | the entry that should be popped off the `https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorState#backStack()` along with all entries above this entry. |
| `savedState: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | whether any Navigator specific state associated with `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#popBackStack(androidx.navigation.NavBackStackEntry,kotlin.Boolean)` should be saved to later be restored by a call to `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#navigate(kotlin.collections.List,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)` with `https://developer.android.com/reference/kotlin/androidx/navigation/NavOptions#shouldRestoreState()`. |