NavController

public class NavController

Known direct subclasses
NavHostController

Subclass of NavController that offers additional APIs for use by a NavHost to connect the NavController to external dependencies.

Known indirect subclasses
TestNavHostController

Subclass of NavHostController that offers additional APIs for testing Navigation.


NavController manages app navigation within a NavHost.

Apps will generally obtain a controller directly from a host, or by using one of the utility methods on the Navigation class rather than create a controller directly.

Navigation flows and destinations are determined by the navigation graph owned by the controller. These graphs are typically inflated from an Android resource, but, like views, they can also be constructed or combined programmatically or for the case of dynamic navigation structure. (For example, if the navigation structure of the application is determined by live data obtained' from a remote server.)

Summary

Nested types

NavController.Companion
NavController.OnDestinationChangedListener

OnDestinationChangedListener receives a callback when the currentDestination or its arguments change.

Public fields

NavBackStackEntry

The topmost NavBackStackEntry.

final @NonNull Flow<@NonNull NavBackStackEntry>

A Flow that will emit the currently active NavBackStackEntry whenever it changes.

NavDestination

The current destination.

@NonNull NavGraph

The topmost navigation graph associated with this NavController.

@NonNull NavInflater

The inflater for this controller.

@NonNull NavigatorProvider

The NavController's NavigatorProvider.

NavBackStackEntry

The previous visible NavBackStackEntry.

final @NonNull StateFlow<@NonNull List<@NonNull NavBackStackEntry>>

A StateFlow that will emit the currently visible NavBackStackEntries whenever they change.

Public constructors

Public methods

void

Adds an OnDestinationChangedListener to this controller to receive a callback whenever the currentDestination or its arguments change.

final @MainThread boolean

Clears any saved state associated with route that was previously saved via popBackStack when using a saveState value of true.

final @MainThread boolean
clearBackStack(@IdRes int destinationId)

Clears any saved state associated with destinationId that was previously saved via popBackStack when using a saveState value of true.

@NonNull NavDeepLinkBuilder

Create a deep link to a destination within this NavController.

@NonNull NavBackStackEntry
getBackStackEntry(@IdRes int destinationId)

Gets the topmost NavBackStackEntry for a destination id.

final @NonNull NavBackStackEntry

Gets the topmost NavBackStackEntry for a route.

@NonNull ViewModelStoreOwner
getViewModelStoreOwner(@IdRes int navGraphId)

Gets the ViewModelStoreOwner for a NavGraph.

@MainThread boolean

Checks the given Intent for a Navigation deep link and navigates to the deep link if present.

@MainThread void
navigate(@IdRes int resId)

Navigate to a destination from the current navigation graph.

@MainThread void
navigate(@IdRes int resId, Bundle args)

Navigate to a destination from the current navigation graph.

@MainThread void
navigate(@IdRes int resId, Bundle args, NavOptions navOptions)

Navigate to a destination from the current navigation graph.

@MainThread void
navigate(
    @IdRes int resId,
    Bundle args,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination from the current navigation graph.

@MainThread void
navigate(Uri deepLink)

Navigate to a destination via the given deep link Uri.

@MainThread void
navigate(Uri deepLink, NavOptions navOptions)

Navigate to a destination via the given deep link Uri.

@MainThread void
navigate(
    Uri deepLink,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination via the given deep link Uri.

@MainThread void

Navigate to a destination via the given NavDeepLinkRequest.

@MainThread void
navigate(NavDeepLinkRequest request, NavOptions navOptions)

Navigate to a destination via the given NavDeepLinkRequest.

@MainThread void
navigate(
    NavDeepLinkRequest request,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination via the given NavDeepLinkRequest.

@MainThread void
navigate(NavDirections directions)

Navigate via the given NavDirections

@MainThread void
navigate(NavDirections directions, NavOptions navOptions)

Navigate via the given NavDirections

@MainThread void
navigate(NavDirections directions, Navigator.Extras navigatorExtras)

Navigate via the given NavDirections

final void
navigate(
    String route,
    @ExtensionFunctionType Function1<NavOptionsBuilderUnit> builder
)

Navigate to a route in the current NavGraph.

final void
navigate(
    String route,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a route in the current NavGraph.

@MainThread boolean

Attempts to navigate up in the navigation hierarchy.

@MainThread boolean

Attempts to pop the controller's back stack.

@MainThread boolean
popBackStack(@IdRes int destinationId, boolean inclusive)

Attempts to pop the controller's back stack back to a specific destination.

@MainThread boolean
popBackStack(
    @IdRes int destinationId,
    boolean inclusive,
    boolean saveState
)

Attempts to pop the controller's back stack back to a specific destination.

final @MainThread boolean
popBackStack(String route, boolean inclusive, boolean saveState)

Attempts to pop the controller's back stack back to a specific destination.

void

Removes an OnDestinationChangedListener from this controller.

@CallSuper void
restoreState(Bundle navState)

Restores all navigation controller state from a bundle.

@CallSuper Bundle

Saves all navigation controller state to a Bundle.

@MainThread @CallSuper void
setGraph(@NavigationRes int graphResId)

Sets the navigation graph to the specified resource.

@MainThread @CallSuper void
setGraph(@NavigationRes int graphResId, Bundle startDestinationArgs)

Sets the navigation graph to the specified resource.

@MainThread @CallSuper void
setGraph(NavGraph graph, Bundle startDestinationArgs)

Sets the navigation graph to the specified graph.

Extension functions

final @NonNull NavGraph
NavControllerKt.createGraph(
    NavController receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @ExtensionFunctionType Function1<NavGraphBuilderUnit> builder
)

This method is deprecated. Use routes to create your NavGraph instead

final @NonNull NavGraph
NavControllerKt.createGraph(
    NavController receiver,
    String startDestination,
    String route,
    @ExtensionFunctionType Function1<NavGraphBuilderUnit> builder
)

Construct a new NavGraph

final @NonNull NavGraph
NavControllerKt.createGraph(
    NavController receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @ExtensionFunctionType Function1<DynamicNavGraphBuilderUnit> builder
)

This method is deprecated. Use routes to create your dynamic NavGraph instead

final @NonNull NavGraph
NavControllerKt.createGraph(
    NavController receiver,
    String startDestination,
    String route,
    @ExtensionFunctionType Function1<DynamicNavGraphBuilderUnit> builder
)

Construct a new androidx.navigation.NavGraph that supports dynamic navigation destinations

final boolean
NavControllerKt.navigateUp(
    NavController receiver,
    Openable drawerLayout
)

Handles the Up button by delegating its behavior to the given NavController.

final boolean
NavControllerKt.navigateUp(
    NavController receiver,
    AppBarConfiguration appBarConfiguration
)

Handles the Up button by delegating its behavior to the given NavController.

Public fields

currentBackStackEntry

public NavBackStackEntry currentBackStackEntry

The topmost NavBackStackEntry.

Returns
NavBackStackEntry

the topmost entry on the back stack or null if the back stack is empty

currentBackStackEntryFlow

public final @NonNull Flow<@NonNull NavBackStackEntrycurrentBackStackEntryFlow

A Flow that will emit the currently active NavBackStackEntry whenever it changes. If there is no active NavBackStackEntry, no item will be emitted.

currentDestination

public NavDestination currentDestination

The current destination.

graph

public @NonNull NavGraph graph

The topmost navigation graph associated with this NavController.

When this is set any current navigation graph data (including back stack) will be replaced.

Throws
kotlin.IllegalStateException

if called before setGraph().

See also
setGraph
public @NonNull NavInflater navInflater

The inflater for this controller.

Returns
@NonNull NavInflater

inflater for loading navigation resources

public @NonNull NavigatorProvider navigatorProvider

The NavController's NavigatorProvider. All Navigators used to construct the navigation graph for this nav controller should be added to this navigator provider before the graph is constructed.

This can only be set before the graph is set via setGraph().

Generally, the Navigators are set for you by the NavHost hosting this NavController and you do not need to manually interact with the navigator provider.

Throws
kotlin.IllegalStateException

If this set called after setGraph()

previousBackStackEntry

public NavBackStackEntry previousBackStackEntry

The previous visible NavBackStackEntry.

This skips over any NavBackStackEntry that is associated with a NavGraph.

Returns
NavBackStackEntry

the previous visible entry on the back stack or null if the back stack has less than two visible entries

visibleEntries

public final @NonNull StateFlow<@NonNull List<@NonNull NavBackStackEntry>> visibleEntries

A StateFlow that will emit the currently visible NavBackStackEntries whenever they change. If there is no visible NavBackStackEntry, this will be set to an empty list.

  • CREATED entries are listed first and include all entries that have been popped from the back stack and are in the process of completing their exit transition

  • STARTED entries on the back stack are next and include all entries that are running their enter transition and entries whose destination is partially covered by a FloatingWindow destination

  • The last entry in the list is the topmost entry in the back stack and is in the RESUMED state only if its enter transition has completed. Otherwise it too will be STARTED.

Note that the Lifecycle of any entry cannot be higher than the containing Activity/Fragment - if the Activity is not RESUMED, no entry will be RESUMED, no matter what the transition state is.

Public constructors

public final NavController(Context context)

Public methods

addOnDestinationChangedListener

public void addOnDestinationChangedListener(
    NavController.OnDestinationChangedListener listener
)

Adds an OnDestinationChangedListener to this controller to receive a callback whenever the currentDestination or its arguments change.

The current destination, if any, will be immediately sent to your listener.

Parameters
NavController.OnDestinationChangedListener listener

the listener to receive events

clearBackStack

@MainThread
public final boolean clearBackStack(String route)

Clears any saved state associated with route that was previously saved via popBackStack when using a saveState value of true.

Parameters
String route

The route of the destination previously used with popBackStack with a saveState value of true

Returns
boolean

true if the saved state of the stack associated with route was cleared.

clearBackStack

@MainThread
public final boolean clearBackStack(@IdRes int destinationId)

Clears any saved state associated with destinationId that was previously saved via popBackStack when using a saveState value of true.

Parameters
@IdRes int destinationId

The ID of the destination previously used with popBackStack with a saveStatevalue of true

Returns
boolean

true if the saved state of the stack associated with destinationId was cleared.

createDeepLink

public @NonNull NavDeepLinkBuilder createDeepLink()

Create a deep link to a destination within this NavController.

Returns
@NonNull NavDeepLinkBuilder

a NavDeepLinkBuilder suitable for constructing a deep link

getBackStackEntry

public @NonNull NavBackStackEntry getBackStackEntry(@IdRes int destinationId)

Gets the topmost NavBackStackEntry for a destination id.

This is always safe to use with the current destination or its parent or grandparent navigation graphs as these destinations are guaranteed to be on the back stack.

Parameters
@IdRes int destinationId

ID of a destination that exists on the back stack

Throws
kotlin.IllegalArgumentException

if the destination is not on the back stack

getBackStackEntry

public final @NonNull NavBackStackEntry getBackStackEntry(String route)

Gets the topmost NavBackStackEntry for a route.

This is always safe to use with the current destination or its parent or grandparent navigation graphs as these destinations are guaranteed to be on the back stack.

Parameters
String route

route of a destination that exists on the back stack

Throws
kotlin.IllegalArgumentException

if the destination is not on the back stack

getViewModelStoreOwner

public @NonNull ViewModelStoreOwner getViewModelStoreOwner(@IdRes int navGraphId)

Gets the ViewModelStoreOwner for a NavGraph. This can be passed to androidx.lifecycle.ViewModelProvider to retrieve a ViewModel that is scoped to the navigation graph - it will be cleared when the navigation graph is popped off the back stack.

Parameters
@IdRes int navGraphId

ID of a NavGraph that exists on the back stack

Throws
kotlin.IllegalStateException

if called before the NavHost has called NavHostController.setViewModelStore.

kotlin.IllegalArgumentException

if the NavGraph is not on the back stack

handleDeepLink

@MainThread
public boolean handleDeepLink(Intent intent)

Checks the given Intent for a Navigation deep link and navigates to the deep link if present. This is called automatically for you the first time you set the graph if you've passed in an Activity as the context when constructing this NavController, but should be manually called if your Activity receives new Intents in Activity.onNewIntent.

The types of Intents that are supported include:

Intents created by NavDeepLinkBuilder or createDeepLink. This assumes that the current graph shares the same hierarchy to get to the deep linked destination as when the deep link was constructed. Intents that include a data Uri. This Uri will be checked against the Uri patterns in the NavDeepLinks added via NavDestination.addDeepLink.

The navigation graph should be set before calling this method.

Parameters
Intent intent

The Intent that may contain a valid deep link

Returns
boolean

True if the navigation controller found a valid deep link and navigated to it.

Throws
kotlin.IllegalStateException

if deep link cannot be accessed from the current destination

See also
addDeepLink
@MainThread
public void navigate(@IdRes int resId)

Navigate to a destination from the current navigation graph. This supports both navigating via an action and directly navigating to a destination.

Parameters
@IdRes int resId

an action id or a destination id to navigate to

Throws
kotlin.IllegalStateException

if there is no current navigation node

kotlin.IllegalArgumentException

if the desired destination cannot be found from the current destination

@MainThread
public void navigate(@IdRes int resId, Bundle args)

Navigate to a destination from the current navigation graph. This supports both navigating via an action and directly navigating to a destination.

Parameters
@IdRes int resId

an action id or a destination id to navigate to

Bundle args

arguments to pass to the destination

Throws
kotlin.IllegalStateException

if there is no current navigation node

kotlin.IllegalArgumentException

if the desired destination cannot be found from the current destination

@MainThread
public void navigate(@IdRes int resId, Bundle args, NavOptions navOptions)

Navigate to a destination from the current navigation graph. This supports both navigating via an action and directly navigating to a destination.

Parameters
@IdRes int resId

an action id or a destination id to navigate to

Bundle args

arguments to pass to the destination

NavOptions navOptions

special options for this navigation operation

Throws
kotlin.IllegalStateException

if there is no current navigation node

kotlin.IllegalArgumentException

if the desired destination cannot be found from the current destination

@MainThread
public void navigate(
    @IdRes int resId,
    Bundle args,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination from the current navigation graph. This supports both navigating via an action and directly navigating to a destination.

Parameters
@IdRes int resId

an action id or a destination id to navigate to

Bundle args

arguments to pass to the destination

NavOptions navOptions

special options for this navigation operation

Navigator.Extras navigatorExtras

extras to pass to the Navigator

Throws
kotlin.IllegalStateException

if there is no current navigation node

kotlin.IllegalArgumentException

if the desired destination cannot be found from the current destination

@MainThread
public void navigate(Uri deepLink)

Navigate to a destination via the given deep link Uri. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
Uri deepLink

deepLink to the destination reachable from the current NavGraph

See also
navigate
@MainThread
public void navigate(Uri deepLink, NavOptions navOptions)

Navigate to a destination via the given deep link Uri. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
Uri deepLink

deepLink to the destination reachable from the current NavGraph

NavOptions navOptions

special options for this navigation operation

See also
navigate
@MainThread
public void navigate(
    Uri deepLink,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination via the given deep link Uri. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
Uri deepLink

deepLink to the destination reachable from the current NavGraph

NavOptions navOptions

special options for this navigation operation

Navigator.Extras navigatorExtras

extras to pass to the Navigator

See also
navigate
@MainThread
public void navigate(NavDeepLinkRequest request)

Navigate to a destination via the given NavDeepLinkRequest. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
NavDeepLinkRequest request

deepLinkRequest to the destination reachable from the current NavGraph

Throws
kotlin.IllegalArgumentException

if the given deep link request is invalid

@MainThread
public void navigate(NavDeepLinkRequest request, NavOptions navOptions)

Navigate to a destination via the given NavDeepLinkRequest. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
NavDeepLinkRequest request

deepLinkRequest to the destination reachable from the current NavGraph

NavOptions navOptions

special options for this navigation operation

Throws
kotlin.IllegalArgumentException

if the given deep link request is invalid

@MainThread
public void navigate(
    NavDeepLinkRequest request,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a destination via the given NavDeepLinkRequest. NavDestination.hasDeepLink should be called on the navigation graph prior to calling this method to check if the deep link is valid. If an invalid deep link is given, an IllegalArgumentException will be thrown.

Parameters
NavDeepLinkRequest request

deepLinkRequest to the destination reachable from the current NavGraph

NavOptions navOptions

special options for this navigation operation

Navigator.Extras navigatorExtras

extras to pass to the Navigator

Throws
kotlin.IllegalArgumentException

if the given deep link request is invalid

@MainThread
public void navigate(NavDirections directions)

Navigate via the given NavDirections

Parameters
NavDirections directions

directions that describe this navigation operation

@MainThread
public void navigate(NavDirections directions, NavOptions navOptions)

Navigate via the given NavDirections

Parameters
NavDirections directions

directions that describe this navigation operation

NavOptions navOptions

special options for this navigation operation

@MainThread
public void navigate(NavDirections directions, Navigator.Extras navigatorExtras)

Navigate via the given NavDirections

Parameters
NavDirections directions

directions that describe this navigation operation

Navigator.Extras navigatorExtras

extras to pass to the Navigator

public final void navigate(
    String route,
    @ExtensionFunctionType Function1<NavOptionsBuilderUnit> builder
)

Navigate to a route in the current NavGraph. If an invalid route is given, an IllegalArgumentException will be thrown.

Parameters
String route

route for the destination

@ExtensionFunctionType Function1<NavOptionsBuilderUnit> builder

DSL for constructing a new NavOptions

Throws
kotlin.IllegalArgumentException

if the given route is invalid

public final void navigate(
    String route,
    NavOptions navOptions,
    Navigator.Extras navigatorExtras
)

Navigate to a route in the current NavGraph. If an invalid route is given, an IllegalArgumentException will be thrown.

Parameters
String route

route for the destination

NavOptions navOptions

special options for this navigation operation

Navigator.Extras navigatorExtras

extras to pass to the Navigator

Throws
kotlin.IllegalArgumentException

if the given route is invalid

@MainThread
public boolean navigateUp()

Attempts to navigate up in the navigation hierarchy. Suitable for when the user presses the "Up" button marked with a left (or start)-facing arrow in the upper left (or starting) corner of the app UI.

The intended behavior of Up differs from Back when the user did not reach the current destination from the application's own task. e.g. if the user is viewing a document or link in the current app in an activity hosted on another app's task where the user clicked the link. In this case the current activity (determined by the context used to create this NavController) will be finished and the user will be taken to an appropriate destination in this app on its own task.

Returns
boolean

true if navigation was successful, false otherwise

popBackStack

@MainThread
public boolean popBackStack()

Attempts to pop the controller's back stack. Analogous to when the user presses the system Back button when the associated navigation host has focus.

Returns
boolean

true if the stack was popped at least once and the user has been navigated to another destination, false otherwise

popBackStack

@MainThread
public boolean popBackStack(@IdRes int destinationId, boolean inclusive)

Attempts to pop the controller's back stack back to a specific destination.

Parameters
@IdRes int destinationId

The topmost destination to retain

boolean inclusive

Whether the given destination should also be popped.

Returns
boolean

true if the stack was popped at least once and the user has been navigated to another destination, false otherwise

popBackStack

@MainThread
public boolean popBackStack(
    @IdRes int destinationId,
    boolean inclusive,
    boolean saveState
)

Attempts to pop the controller's back stack back to a specific destination.

Parameters
@IdRes int destinationId

The topmost destination to retain

boolean inclusive

Whether the given destination should also be popped.

boolean saveState

Whether the back stack and the state of all destinations between the current destination and the destinationId should be saved for later restoration via NavOptions.Builder.setRestoreState or the restoreState attribute using the same destinationId (note: this matching ID is true whether inclusive is true or false).

Returns
boolean

true if the stack was popped at least once and the user has been navigated to another destination, false otherwise

popBackStack

@MainThread
public final boolean popBackStack(String route, boolean inclusive, boolean saveState)

Attempts to pop the controller's back stack back to a specific destination.

Parameters
String route

The topmost destination to retain

boolean inclusive

Whether the given destination should also be popped.

boolean saveState

Whether the back stack and the state of all destinations between the current destination and the route should be saved for later restoration via NavOptions.Builder.setRestoreState or the restoreState attribute using the same route (note: this matching ID is true whether inclusive is true or false).

Returns
boolean

true if the stack was popped at least once and the user has been navigated to another destination, false otherwise

removeOnDestinationChangedListener

public void removeOnDestinationChangedListener(
    NavController.OnDestinationChangedListener listener
)

Removes an OnDestinationChangedListener from this controller. It will no longer receive callbacks.

Parameters
NavController.OnDestinationChangedListener listener

the listener to remove

restoreState

@CallSuper
public void restoreState(Bundle navState)

Restores all navigation controller state from a bundle. This should be called before any call to setGraph.

State may be saved to a bundle by calling saveState. Restoring controller state is the responsibility of a NavHost.

Parameters
Bundle navState

state bundle to restore

saveState

@CallSuper
public Bundle saveState()

Saves all navigation controller state to a Bundle.

State may be restored from a bundle returned from this method by calling restoreState. Saving controller state is the responsibility of a NavHost.

Returns
Bundle

saved state for this controller

setGraph

@MainThread
@CallSuper
public void setGraph(@NavigationRes int graphResId)

Sets the navigation graph to the specified resource. Any current navigation graph data (including back stack) will be replaced.

The inflated graph can be retrieved via graph.

Parameters
@NavigationRes int graphResId

resource id of the navigation graph to inflate

setGraph

@MainThread
@CallSuper
public void setGraph(@NavigationRes int graphResId, Bundle startDestinationArgs)

Sets the navigation graph to the specified resource. Any current navigation graph data (including back stack) will be replaced.

The inflated graph can be retrieved via graph.

Parameters
@NavigationRes int graphResId

resource id of the navigation graph to inflate

Bundle startDestinationArgs

arguments to send to the start destination of the graph

setGraph

@MainThread
@CallSuper
public void setGraph(NavGraph graph, Bundle startDestinationArgs)

Sets the navigation graph to the specified graph. Any current navigation graph data (including back stack) will be replaced.

The graph can be retrieved later via graph.

Parameters
NavGraph graph

graph to set

See also
setGraph
graph

Extension functions

NavControllerKt.createGraph

public final @NonNull NavGraph NavControllerKt.createGraph(
    NavController receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @ExtensionFunctionType Function1<NavGraphBuilderUnit> builder
)

Construct a new NavGraph

Parameters
@IdRes int id

the graph's unique id

@IdRes int startDestination

the route for the start destination

@ExtensionFunctionType Function1<NavGraphBuilderUnit> builder

the builder used to construct the graph

NavControllerKt.createGraph

public final @NonNull NavGraph NavControllerKt.createGraph(
    NavController receiver,
    String startDestination,
    String route,
    @ExtensionFunctionType Function1<NavGraphBuilderUnit> builder
)

Construct a new NavGraph

Parameters
String startDestination

the route for the start destination

String route

the route for the graph

@ExtensionFunctionType Function1<NavGraphBuilderUnit> builder

the builder used to construct the graph

NavControllerKt.createGraph

public final @NonNull NavGraph NavControllerKt.createGraph(
    NavController receiver,
    @IdRes int id,
    @IdRes int startDestination,
    @ExtensionFunctionType Function1<DynamicNavGraphBuilderUnit> builder
)

Construct a new androidx.navigation.NavGraph that supports dynamic navigation destinations

NavControllerKt.createGraph

public final @NonNull NavGraph NavControllerKt.createGraph(
    NavController receiver,
    String startDestination,
    String route,
    @ExtensionFunctionType Function1<DynamicNavGraphBuilderUnit> builder
)

Construct a new androidx.navigation.NavGraph that supports dynamic navigation destinations

NavControllerKt.navigateUp

public final boolean NavControllerKt.navigateUp(
    NavController receiver,
    Openable drawerLayout
)

Handles the Up button by delegating its behavior to the given NavController.

This is equivalent to calling NavController.navigateUp if the Openable layout is null.

Returns
boolean

True if the NavController was able to navigate up.

NavControllerKt.navigateUp

public final boolean NavControllerKt.navigateUp(
    NavController receiver,
    AppBarConfiguration appBarConfiguration
)

Handles the Up button by delegating its behavior to the given NavController.

Returns
boolean

True if the NavController was able to navigate up.