# DynamicGraphNavigator

Artifact: [androidx.navigation:navigation-dynamic-features-runtime](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/dynamicfeatures/DynamicGraphNavigator.kt+class:androidx.navigation.dynamicfeatures.DynamicGraphNavigator) Added in [2.3.0](https://developer.android.com/jetpack/androidx/releases/navigation#2.3.0)

*** ** * ** ***

Kotlin \|[Java](https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator "View this page in Java")


```
@Navigator.Name(value = "navigation")
class DynamicGraphNavigator : NavGraphNavigator
```

<br />

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

*** ** * ** ***

Navigator for graphs in dynamic feature modules.

This class handles navigating to a progress destination when the installation of a dynamic feature module is required. By default, the progress destination set by `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#installDefaultProgressDestination(kotlin.Function0)` will be used, but this can be overridden by setting the `app:progressDestinationId` attribute in your navigation XML file.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph : https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` The `https://developer.android.com/reference/kotlin/androidx/navigation/NavGraph` for dynamic features. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#DynamicGraphNavigator(androidx.navigation.NavigatorProvider,androidx.navigation.dynamicfeatures.DynamicInstallManager)( navigatorProvider: https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorProvider, installManager: https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicInstallManager )` |

| ### Public functions |
|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` | `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#createDestination()()` Create a destination for the `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#installDefaultProgressDestination(kotlin.Function0)( progressDestinationSupplier: () -> https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination )` Installs the default progress destination to this graph via a lambda. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#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. |
| `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#onRestoreState(android.os.Bundle)(savedState: https://developer.android.com/reference/android/os/Bundle.html)` |
| `open https://developer.android.com/reference/android/os/Bundle.html?` | `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#onSaveState()()` |

| ### 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? )` | | `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)` | | `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)` | | `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)` | | `open https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#popBackStack()()` | | `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)` | |

| ### Inherited properties |
|---|
| From [androidx.navigation.NavGraphNavigator](https://developer.android.com/reference/kotlin/androidx/navigation/NavGraphNavigator) |---|---| | `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()` | |
| 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()` | | `https://developer.android.com/reference/kotlin/androidx/navigation/NavigatorState` | `https://developer.android.com/reference/kotlin/androidx/navigation/Navigator#state()` | |

## Public constructors

### DynamicGraphNavigator

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

```
DynamicGraphNavigator(
    navigatorProvider: NavigatorProvider,
    installManager: DynamicInstallManager
)
```

## Public functions

### createDestination

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

```
open fun createDestination(): DynamicGraphNavigator.DynamicNavGraph
```

Create a destination for the `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`.

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` | The created graph. |

### installDefaultProgressDestination

```
fun installDefaultProgressDestination(
    progressDestinationSupplier: () -> NavDestination
): Unit
```

Installs the default progress destination to this graph via a lambda. This supplies a `https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination` to use when the actual destination is not installed at navigation time.

This **must** be called before you call `https://developer.android.com/reference/kotlin/androidx/navigation/NavController#setGraph(androidx.navigation.NavGraph,androidx.savedstate.SavedState)` to ensure that all `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` instances have the correct progress destination installed in `https://developer.android.com/reference/kotlin/androidx/navigation/dynamicfeatures/DynamicGraphNavigator#onRestoreState(android.os.Bundle)`.

| Parameters |
|---|---|
| `progressDestinationSupplier: () -> https://developer.android.com/reference/kotlin/androidx/navigation/NavDestination` | The default progress destination supplier. |

### navigate

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

Navigate to a destination.

In case the destination module is installed the navigation will trigger directly. Otherwise the dynamic feature module is requested and navigation is postponed until the module has successfully been installed.

### onRestoreState

```
open fun onRestoreState(savedState: Bundle): Unit
```

### onSaveState

```
open fun onSaveState(): Bundle?
```