# NavigatorProvider

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

*** ** * ** ***


```
public class NavigatorProvider
```

<br />

*** ** * ** ***

A NavigationProvider stores a set of `https://developer.android.com/reference/androidx/navigation/Navigator`s that are valid ways to navigate to a destination.

## Summary

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

| ### Public methods |
|---|---|
| `final https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | `https://developer.android.com/reference/androidx/navigation/NavigatorProvider#addNavigator(androidx.navigation.Navigator)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator)` Register a navigator using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`. |
| `https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | `@https://developer.android.com/reference/androidx/annotation/CallSuper https://developer.android.com/reference/androidx/navigation/NavigatorProvider#addNavigator(kotlin.String,androidx.navigation.Navigator)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator )` Register a navigator by name. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | `@https://developer.android.com/reference/androidx/annotation/CallSuper <T extends https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> https://developer.android.com/reference/androidx/navigation/NavigatorProvider#getNavigator(kotlin.String)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name)` Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` by name. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `@https://developer.android.com/reference/androidx/annotation/CallSuper <T extends https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> https://developer.android.com/reference/androidx/navigation/NavigatorProvider#getNavigator(java.lang.Class)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> navigatorClass )` Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> https://developer.android.com/reference/androidx/navigation/NavigatorProvider#getNavigator(kotlin.reflect.KClass)( @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> navigatorClass )` Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using class. |

| ### Extension functions |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/DynamicNavGraphBuilderKt.[navigation](https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Int,kotlin.Int,kotlin.Function1))( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/IdRes int id, @https://developer.android.com/reference/androidx/annotation/IdRes int startDestination, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` **This method is deprecated.** Use routes to create your DynamicNavGraph instead |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/DynamicNavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.String,kotlin.String,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html startDestination, https://developer.android.com/reference/java/lang/String.html route, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/DynamicNavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html startDestination, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/DynamicNavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> startDestination, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/NavGraphBuilderKt.[navigation](https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Int,kotlin.Int,kotlin.Function1))( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/IdRes int id, @https://developer.android.com/reference/androidx/annotation/IdRes int startDestination, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` **This method is deprecated.** Use routes to build your NavGraph instead |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/NavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.String,kotlin.String,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html startDestination, https://developer.android.com/reference/java/lang/String.html route, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/NavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html startDestination, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | `https://developer.android.com/reference/androidx/navigation/NavGraphBuilderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> startDestination, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap, @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder )` Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>> https://developer.android.com/reference/androidx/navigation/NavigatorProviderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).get(kotlin.reflect.KClass)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> clazz )` Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`. |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull T` | `<T extends https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>> https://developer.android.com/reference/androidx/navigation/NavigatorProviderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).get(kotlin.String)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name )` Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` by name. |
| `final void` | `https://developer.android.com/reference/androidx/navigation/NavigatorProviderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).plusAssign(androidx.navigation.Navigator)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator )` Register a navigator using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`. |
| `final https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | `https://developer.android.com/reference/androidx/navigation/NavigatorProviderKt.https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).set(kotlin.String,androidx.navigation.Navigator)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorProvider receiver, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator )` Register a `https://developer.android.com/reference/androidx/navigation/Navigator` by name. |

## Public constructors

### NavigatorProvider

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

```
public NavigatorProvider()
```

## Public methods

### addNavigator

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

```
public final Navigator<@NonNull NavDestination> addNavigator(@NonNull Navigator<@NonNull NavDestination> navigator)
```

Register a navigator using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`. `https://developer.android.com/reference/androidx/navigation/NavDestination` may refer to any registered navigator by name for inflation. If a navigator by this name is already registered, this new navigator will replace it.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator` | navigator to add |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | the previously added Navigator for the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`, if any |

### addNavigator

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

```
@CallSuper
public Navigator<@NonNull NavDestination> addNavigator(
    @NonNull String name,
    @NonNull Navigator<@NonNull NavDestination> navigator
)
```

Register a navigator by name. `https://developer.android.com/reference/androidx/navigation/NavDestination` may refer to any registered navigator by name for inflation. If a navigator by this name is already registered, this new navigator will replace it.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name` | name for this navigator |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination> navigator` | navigator to add |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | the previously added Navigator for the given name, if any |

### getNavigator

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

```
@CallSuper
public @NonNull T <T extends Navigator<@NonNull ?>> getNavigator(@NonNull String name)
```

Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` by name.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html name` | name of the navigator to return |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | the registered navigator with the given name |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the Navigator has not been added |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavigatorProvider#addNavigator(androidx.navigation.Navigator)` |   |

### getNavigator

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

```
@CallSuper
public final @NonNull T <T extends Navigator<@NonNull ?>> getNavigator(
    @NonNull Class<@NonNull T> navigatorClass
)
```

Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Class.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> navigatorClass` | class of the navigator to return |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | the registered navigator with the given `https://developer.android.com/reference/androidx/navigation/Navigator.Name` |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-argument-exception/index.html` | if the Navigator does not have a `https://developer.android.com/reference/androidx/navigation/Navigator.Name` |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the Navigator has not been added |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavigatorProvider#addNavigator(androidx.navigation.Navigator)` |   |

### getNavigator

```
public final @NonNull T <T extends Navigator<@NonNull ?>> getNavigator(
    @NonNull KClass<@NonNull T> navigatorClass
)
```

Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using class.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull T> navigatorClass` | class of the navigator to return |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull T` | the registered navigator with the given `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the Navigator has not been added |

| See also |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/NavigatorProvider#addNavigator(androidx.navigation.Navigator)` |   |

## Extension functions

### DynamicNavGraphBuilderKt.navigation

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/DynamicNavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph DynamicNavGraphBuilderKt.[navigation](https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Int,kotlin.Int,kotlin.Function1))(
    @NonNull NavigatorProvider receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @NonNull Function1<@NonNull DynamicNavGraphBuilder, Unit> builder
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use routes to create your DynamicNavGraph instead, use this instead:
>
> ```
> navigation(startDestination = startDestination.toString(), route = id.toString()) { builder.invoke() }
> ```

Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/IdRes int id` | NavGraph id. |
| `@https://developer.android.com/reference/androidx/annotation/IdRes int startDestination` | Id start destination in the graph |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | Another builder for chaining. |

### DynamicNavGraphBuilderKt.navigation

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/DynamicNavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph DynamicNavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull String startDestination,
    String route,
    @NonNull Function1<@NonNull DynamicNavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html startDestination` | route start destination in the graph |
| `https://developer.android.com/reference/java/lang/String.html route` | NavGraph route. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | Another builder for chaining. |

### DynamicNavGraphBuilderKt.navigation

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/DynamicNavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph DynamicNavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull Object startDestination,
    KClass<@NonNull ?> route,
    @NonNull Map<@NonNull KType, @NonNull NavType<@NonNull ?>> typeMap,
    @NonNull Function1<@NonNull DynamicNavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html startDestination` | the starting destination's route from an Object for this NavGraph. The respective NavDestination must be added with route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` in order to match. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route` | the graph's unique route as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap` | A mapping of KType to custom NavType\<\*\> in the `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)`. May be empty if `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)` does not use custom NavTypes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | Another builder for chaining. |

### DynamicNavGraphBuilderKt.navigation

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/DynamicNavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph DynamicNavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull KClass<@NonNull ?> startDestination,
    KClass<@NonNull ?> route,
    @NonNull Map<@NonNull KType, @NonNull NavType<@NonNull ?>> typeMap,
    @NonNull Function1<@NonNull DynamicNavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicGraphNavigator.DynamicNavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> startDestination` | the starting destination's route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` for this NavGraph. The respective NavDestination must be added with route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` in order to match. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route` | the graph's unique route as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap` | A mapping of KType to custom NavType\<\*\> in the `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)`. May be empty if `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)` does not use custom NavTypes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicNavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | Another builder for chaining. |

### NavGraphBuilderKt.navigation

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavGraphBuilder.android.kt+function:navigation)

```
public final @NonNull NavGraph NavGraphBuilderKt.[navigation](https://developer.android.com/reference/androidx/navigation/NavigatorProvider#(androidx.navigation.NavigatorProvider).navigation(kotlin.Int,kotlin.Int,kotlin.Function1))(
    @NonNull NavigatorProvider receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @NonNull Function1<@NonNull NavGraphBuilder, Unit> builder
)
```

> [!CAUTION]
> **This method is deprecated.**   
> Use routes to build your NavGraph instead, use this instead:
>
> ```
> navigation(startDestination = startDestination.toString(), route = id.toString()) { builder.invoke() }
> ```

Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/IdRes int id` | the destination's unique id |
| `@https://developer.android.com/reference/androidx/annotation/IdRes int startDestination` | the starting destination for this NavGraph |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | the builder used to construct the graph |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | the newly constructed NavGraph |

### NavGraphBuilderKt.navigation

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph NavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull String startDestination,
    String route,
    @NonNull Function1<@NonNull NavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html startDestination` | the starting destination's route for this NavGraph |
| `https://developer.android.com/reference/java/lang/String.html route` | the destination's unique route |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | the builder used to construct the graph |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | the newly constructed NavGraph |

### NavGraphBuilderKt.navigation

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph NavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull Object startDestination,
    KClass<@NonNull ?> route,
    @NonNull Map<@NonNull KType, @NonNull NavType<@NonNull ?>> typeMap,
    @NonNull Function1<@NonNull NavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/Object.html startDestination` | the starting destination's route from an Object for this NavGraph. The respective NavDestination must be added with route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` in order to match. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route` | the graph's unique route as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap` | A mapping of KType to custom NavType\<\*\> in the `https://developer.android.com/reference/androidx/navigation/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)`. May be empty if `https://developer.android.com/reference/androidx/navigation/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.Any,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)` does not use custom NavTypes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | the builder used to construct the graph |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | the newly constructed NavGraph |

### NavGraphBuilderKt.navigation

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavGraphBuilder.kt+function:navigation)

```
public final @NonNull NavGraph NavGraphBuilderKt.navigation(
    @NonNull NavigatorProvider receiver,
    @NonNull KClass<@NonNull ?> startDestination,
    KClass<@NonNull ?> route,
    @NonNull Map<@NonNull KType, @NonNull NavType<@NonNull ?>> typeMap,
    @NonNull Function1<@NonNull NavGraphBuilder, Unit> builder
)
```

Construct a new `https://developer.android.com/reference/androidx/navigation/NavGraph`

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> startDestination` | the starting destination's route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` for this NavGraph. The respective NavDestination must be added with route from a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` in order to match. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html<@https://developer.android.com/reference/androidx/annotation/NonNull ?> route` | the graph's unique route as a `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-class/index.html` |
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/Map.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.reflect/-k-type/index.html, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavType<@https://developer.android.com/reference/androidx/annotation/NonNull ?>> typeMap` | A mapping of KType to custom NavType\<\*\> in the `https://developer.android.com/reference/androidx/navigation/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)`. May be empty if `https://developer.android.com/reference/androidx/navigation/package-summary#(androidx.navigation.NavigatorProvider).navigation(kotlin.reflect.KClass,kotlin.reflect.KClass,kotlin.collections.Map,kotlin.Function1)` does not use custom NavTypes. |
| `@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraphBuilder, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> builder` | the builder used to construct the graph |

| Returns |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavGraph` | the newly constructed NavGraph |

### NavigatorProviderKt.get

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavigatorProvider.+function:get)

```
public final @NonNull T <T extends Navigator<@NonNull NavDestination>> NavigatorProviderKt.get(
    @NonNull NavigatorProvider receiver,
    @NonNull KClass<@NonNull T> clazz
)
```

Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the Navigator has not been added |

### NavigatorProviderKt.get

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavigatorProvider.kt+function:get)

```
public final @NonNull T <T extends Navigator<@NonNull NavDestination>> NavigatorProviderKt.get(
    @NonNull NavigatorProvider receiver,
    @NonNull String name
)
```

Retrieves a registered `https://developer.android.com/reference/androidx/navigation/Navigator` by name.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | if the Navigator has not been added |

### NavigatorProviderKt.plusAssign

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavigatorProvider.kt+function:plusAssign)

```
public final void NavigatorProviderKt.plusAssign(
    @NonNull NavigatorProvider receiver,
    @NonNull Navigator<@NonNull NavDestination> navigator
)
```

Register a navigator using the name provided by the `https://developer.android.com/reference/androidx/navigation/Navigator.Name`.

### NavigatorProviderKt.set

Artifact: [androidx.navigation:navigation-common](https://developer.android.com/jetpack/androidx/releases/navigation) [View Source](https://cs.android.com/search?q=file:androidx/navigation/NavigatorProvider.kt+function:set)

```
public final Navigator<@NonNull NavDestination> NavigatorProviderKt.set(
    @NonNull NavigatorProvider receiver,
    @NonNull String name,
    @NonNull Navigator<@NonNull NavDestination> navigator
)
```

Register a `https://developer.android.com/reference/androidx/navigation/Navigator` by name. If a navigator by this name is already registered, this new navigator will replace it.

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/navigation/Navigator<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavDestination>` | the previously added `https://developer.android.com/reference/androidx/navigation/Navigator` for the given name, if any |