# DynamicFragmentNavigator

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

*** ** * ** ***


```
@Navigator.Name(value = "fragment")
public final class DynamicFragmentNavigator extends FragmentNavigator
```

<br />

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object.html) ||||
| ↳ | [androidx.navigation.Navigator](https://developer.android.com/reference/androidx/navigation/Navigator) |||
|   | ↳ | [androidx.navigation.fragment.FragmentNavigator](https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator) ||
|   |   | ↳ | [androidx.navigation.dynamicfeatures.fragment.DynamicFragmentNavigator](https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator) |

*** ** * ** ***

The `https://developer.android.com/reference/androidx/navigation/Navigator` that enables navigating to destinations within dynamic feature modules.

## Summary

| ### Nested types |
|---|
| `public final class https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator.Destination extends https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator.Destination` Destination for dynamic feature navigator. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator#DynamicFragmentNavigator(android.content.Context,androidx.fragment.app.FragmentManager,kotlin.Int,androidx.navigation.dynamicfeatures.DynamicInstallManager)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/FragmentManager manager, int containerId, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/DynamicInstallManager installManager )` |

| ### Public methods |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator.Destination` | `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator#createDestination()()` |
| `void` | `https://developer.android.com/reference/androidx/navigation/dynamicfeatures/fragment/DynamicFragmentNavigator#navigate(kotlin.collections.List,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavBackStackEntry> entries, https://developer.android.com/reference/androidx/navigation/NavOptions navOptions, https://developer.android.com/reference/androidx/navigation/Navigator.Extras navigatorExtras )` {@inheritDoc} |

| ### Inherited methods |
|---|
| From [androidx.navigation.fragment.FragmentNavigator](https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator) |---|---| | `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/Fragment` | `[instantiateFragment](https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#instantiateFragment(android.content.Context,androidx.fragment.app.FragmentManager,kotlin.String,android.os.Bundle))( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/content/Context.html context, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/fragment/app/FragmentManager fragmentManager, @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/lang/String.html className, https://developer.android.com/reference/android/os/Bundle.html args )` **This method is deprecated.** Set a custom {@link androidx.fragment.app.FragmentFactory} via {@link FragmentManager#setFragmentFactory(FragmentFactory)} to control instantiation of Fragments. | | `void` | `https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#onAttach(androidx.navigation.NavigatorState)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorState state)` | | `void` | `https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#onLaunchSingleTop(androidx.navigation.NavBackStackEntry)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavBackStackEntry backStackEntry)` {@inheritDoc} | | `void` | `https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#onRestoreState(android.os.Bundle)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/android/os/Bundle.html savedState)` | | `https://developer.android.com/reference/android/os/Bundle.html` | `https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#onSaveState()()` | | `void` | `https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator#popBackStack(androidx.navigation.NavBackStackEntry,kotlin.Boolean)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavBackStackEntry popUpTo, boolean savedState)` {@inheritDoc} | |
| From [androidx.navigation.Navigator](https://developer.android.com/reference/androidx/navigation/Navigator) |---|---| | `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/NavigatorState` | `https://developer.android.com/reference/androidx/navigation/Navigator#getState()()` | | `final boolean` | `https://developer.android.com/reference/androidx/navigation/Navigator#isAttached()()` | | `https://developer.android.com/reference/androidx/navigation/NavDestination` | `https://developer.android.com/reference/androidx/navigation/Navigator#navigate(androidx.navigation.NavDestination,android.os.Bundle,androidx.navigation.NavOptions,androidx.navigation.Navigator.Extras)( @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/navigation/fragment/FragmentNavigator.Destination destination, https://developer.android.com/reference/android/os/Bundle.html args, https://developer.android.com/reference/androidx/navigation/NavOptions navOptions, https://developer.android.com/reference/androidx/navigation/Navigator.Extras navigatorExtras )` | | `boolean` | `https://developer.android.com/reference/androidx/navigation/Navigator#popBackStack()()` | |

## Public constructors

### DynamicFragmentNavigator

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

```
public DynamicFragmentNavigator(
    @NonNull Context context,
    @NonNull FragmentManager manager,
    int containerId,
    @NonNull DynamicInstallManager installManager
)
```

## Public methods

### createDestination

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

```
public @NonNull DynamicFragmentNavigator.Destination createDestination()
```

### navigate

```
public void navigate(
    @NonNull List<@NonNull NavBackStackEntry> entries,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)
```

{@inheritDoc}

This method should always call `https://developer.android.com/reference/androidx/fragment/app/FragmentTransaction#setPrimaryNavigationFragment(androidx.fragment.app.Fragment)` so that the Fragment associated with the new destination can be retrieved with `https://developer.android.com/reference/androidx/fragment/app/FragmentManager#getPrimaryNavigationFragment()`.

Note that the default implementation commits the new Fragment asynchronously, so the new Fragment is not instantly available after this call completes.

This call will be ignored if the FragmentManager state has already been saved.