# NavGraphNavigator

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

*** ** * ** ***

Common/AllAndroid/JVMJavaScript
- Cmn

  ```
  @Navigator.Name(value = "navigation")
  open class NavGraphNavigator : Navigator<NavGraph>
  ```

|---|---|---|
| [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)\<[NavGraph](https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph)\> ||
|   | ↳ | [androidx.navigation.NavGraphNavigator](https://developer.android.com/reference/kotlin/androidx/navigation/NavGraphNavigator) |

Known direct subclasses [DynamicGraphNavigator](https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator` | Navigator for graphs in dynamic feature modules. |

*** ** * ** ***

A Navigator built specifically for `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` elements. Handles navigating to the correct destination when the NavGraph is the target of navigation actions.

Construct a Navigator capable of routing incoming navigation requests to the proper destination within a `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph`.

## Summary

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

| ### Public functions |
|---|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraphNavigator#createDestination()()` Creates a new `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` 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/NavGraphNavigator#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? )` | Cmn |

| ### Public properties |
|---|---|---|
| `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry>>` | `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraphNavigator#backStack()` Gets the backstack of `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` associated with this Navigator | 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/NavGraph,
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 `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#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 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

### NavGraphNavigator

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

```
NavGraphNavigator(navigatorProvider: NavigatorProvider)
```

| Parameters |
|---|---|
| `navigatorProvider: https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorProvider` | NavigatorProvider used to retrieve the correct `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator` to navigate to the start destination |

## Public functions

### createDestination

Cmn

```
open fun createDestination(): NavGraph
```

Creates a new `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` associated with this navigator.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` | The created `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph`. |

### navigate

Cmn

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

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if given destination is not a child of the current navgraph |

## Public properties

### backStack

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

```
val backStack: StateFlow<List<NavBackStackEntry>>
```

Gets the backstack of `https://developer.android.com/reference/kotlin/androidx/navigation/NavBackStackEntry` associated with this Navigator