Package-level declarations

Types

Link copied to clipboard

Thread-safe, platform-neutral controller for transactional single- or multi-stack navigation.

Link copied to clipboard

Immutable, non-empty snapshot of one retained navigation stack.

Link copied to clipboard
sealed interface NavCommand

Immutable state-mutation command accepted by NavBackStackController.prepare.

Link copied to clipboard
class NavDeepLink(val uriPattern: String, argumentTypes: Map<String, NavDeepLinkArgumentType> = emptyMap(), val targetStackId: NavStackId? = null)

Allowlisted absolute URI pattern registered on one graph node.

Link copied to clipboard

Target type used to decode one deep-link placeholder.

Link copied to clipboard

Mutation applied to the target stack after a deep link matches.

Link copied to clipboard
data class NavDeepLinkMatch(val deepLink: NavDeepLink, val route: NavRoute)

Route produced by a successful deep-link match.

Link copied to clipboard
class NavDeepLinkRejection(val reason: NavDeepLinkRejectionReason, val argumentName: String? = null, matchingPatterns: List<String> = emptyList())

Diagnostic details for a rejected deep-link input.

Link copied to clipboard

Diagnostic reason why a deep link was rejected instead of reported as no match.

Link copied to clipboard
sealed interface NavDeepLinkResolution

Exhaustive result of resolving one input URI.

Link copied to clipboard

Leaf destination inside a navigation graph.

Link copied to clipboard
class NavEntry(val id: NavEntryId, val route: NavRoute, graphEntries: List<NavGraphEntry> = emptyList())

Immutable destination instance retained on a navigation back stack.

Link copied to clipboard
value class NavEntryId(val value: String)

Stable identity of one destination or navigation-graph instance on a retained back stack.

Link copied to clipboard
fun interface NavEntryIdFactory

Allocates globally unique NavEntryId values for a controller.

Link copied to clipboard

Lifecycle state assigned to one retained navigation entry or graph owner.

Link copied to clipboard

Immutable navigation graph that resolves routes, expands nested starts, and matches deep links.

Link copied to clipboard

Mutable DSL receiver that produces an immutable NavGraph.

Link copied to clipboard
annotation class NavGraphDsl

Restricts implicit receivers while declaring a navigation graph.

Link copied to clipboard
class NavGraphEntry(val id: NavEntryId, val route: NavRoute)

Stable owner for one concrete navigation-graph instance on a back stack.

Link copied to clipboard
sealed interface NavGraphNode

Node inside an immutable navigation graph, either a leaf destination or a nested graph.

Link copied to clipboard

Resolved leaf destination and its graph-owner path.

Link copied to clipboard

Platform-neutral lifecycle state that caps every navigation owner hosted by Android.

Link copied to clipboard

Stack insertion mode for NavCommand.Push.

Link copied to clipboard

Immutable result of one lifecycle planning pass.

Link copied to clipboard

Computes navigation-owner lifecycle transitions from retention and pane visibility.

Link copied to clipboard

Lifecycle-state transition for one owner.

Link copied to clipboard

Reason why preparing a valid command produced no state mutation.

Link copied to clipboard
data class NavPane(val role: NavPaneRole, val entryId: NavEntryId)

Binding between one logical pane and the destination entry it displays.

Link copied to clipboard

Logical leading-to-trailing role in a multi-pane navigation layout.

Link copied to clipboard
class NavPaneScene(panes: List<NavPane>)

Immutable pane scene displayed for one active navigation stack.

Link copied to clipboard

Built-in deterministic pane strategies.

Link copied to clipboard
fun interface NavPaneStrategy

Calculates the visible pane scene from a back stack and pane-count limit.

Link copied to clipboard
sealed interface NavPreparation

Exhaustive result of preparing a navigation command.

Link copied to clipboard

System-Back behavior when the active stack is already at its root.

Link copied to clipboard
class NavRoute(val name: String, arguments: Map<String, NavValue> = emptyMap())

Immutable navigation request containing a registered route name and typed arguments.

Link copied to clipboard
class NavStackConfiguration(val initialStackId: NavStackId, stacks: List<NavStackSpec>, val rootBackBehavior: NavRootBackBehavior = NavRootBackBehavior.Delegate)

Immutable configuration for one or more independently retained navigation stacks.

Link copied to clipboard
value class NavStackId(val value: String)

Stable application identity for one independently retained navigation stack.

Link copied to clipboard
data class NavStackMutation(val added: List<NavEntry>, val removed: List<NavEntry>, val previousTop: NavEntry, val nextTop: NavEntry)

Destination-owner delta produced by one navigation transaction.

Link copied to clipboard

Behavior applied when an application selects a retained stack.

Link copied to clipboard
class NavStackSetSnapshot(val activeStackId: NavStackId, stacks: Map<NavStackId, NavBackStackSnapshot>, selectionHistory: List<NavStackId> = emptyList())

Complete immutable state of every retained navigation stack.

Link copied to clipboard
data class NavStackSpec(val id: NavStackId, val startDestination: NavRoute)

Declares one independently retained stack and its initial route.

Link copied to clipboard

Single-use navigation transaction that can be committed or rolled back.

Link copied to clipboard

Terminal state of a prepared navigation transaction.

Link copied to clipboard
sealed interface NavValue

Platform-neutral value permitted in a NavRoute argument map.

Functions

Link copied to clipboard

Runs this strategy and validates its result against snapshot and maxPaneCount.

Link copied to clipboard
fun navGraph(route: String, startDestination: NavRoute, deepLinks: List<NavDeepLink> = emptyList(), builder: NavGraphBuilder.() -> Unit): NavGraph

Builds and validates an immutable navigation graph.