NestedNavigationGraphTileSchema

@Serializable
@SerialName(value = "NestedNavigationGraph")
data class NestedNavigationGraphTileSchema(val id: String, val events: SerializableImmutableList<EventSchema>?, val style: StyleSchema, val searchableTerms: SerializableImmutableList<String>?, val visibility: TileSchema.Visibility, val navigatorId: String, val entries: SerializableImmutableList<NestedNavigationGraphTileSchema.Entry>, val startEntryId: String, val defaultTransition: ContentTransitionSchema? = null, val defaultPopTransition: ContentTransitionSchema? = null, val defaultPredictivePopTransition: ContentTransitionSchema? = null) : TileSchema

Hosts a self-contained Navigation 3 NavDisplay inside a tile, so a region of a screen can have its own back stack. The stack starts at startEntryId and every screen it can show is declared in entries.

Registration: on first composition the tile registers a NavigationController under navigatorId in the app's navigator holder — that id is how navigation events address this graph — and registers each Entry (its initial tiles/events, failure tiles/events and transitions) in the screen-extras holder. Both registrations are undone when the tile leaves composition, so the graph and its entries only exist while the tile is on screen. Each entry gets its own saveable state holder and ViewModelStore, so screen state survives navigating back and forth within the graph.

Transitions: for each navigation the per-entry Entry.transition, Entry.popTransition and Entry.predictivePopTransition win; when an entry does not define one, the graph-level defaultTransition / defaultPopTransition / defaultPredictivePopTransition apply; when neither is set the navigation is instantaneous (no enter or exit animation). The system back gesture pops this graph's own stack.

Triggers dispatched:

  • OnNavigationEntrySetEventTrigger — fired whenever an entry is displayed, carrying the entry's screenId, so events can be wired per destination. It fires for the start destination too, and again whenever navigation returns to an entry.

Constructors

Link copied to clipboard
constructor(id: String, events: SerializableImmutableList<EventSchema>?, style: StyleSchema, searchableTerms: SerializableImmutableList<String>?, visibility: TileSchema.Visibility, navigatorId: String, entries: SerializableImmutableList<NestedNavigationGraphTileSchema.Entry>, startEntryId: String, defaultTransition: ContentTransitionSchema? = null, defaultPopTransition: ContentTransitionSchema? = null, defaultPredictivePopTransition: ContentTransitionSchema? = null)

Types

Link copied to clipboard
@Serializable
data class Entry(val screenId: String, val initialTiles: SerializableImmutableList<TileSchema>, val initialEvents: SerializableImmutableList<EventSchema>, val failureTiles: SerializableImmutableList<TileSchema>, val failureEvents: SerializableImmutableList<EventSchema>, val transition: ContentTransitionSchema? = null, val popTransition: ContentTransitionSchema? = null, val predictivePopTransition: ContentTransitionSchema? = null)

Properties

Link copied to clipboard
@SerialName(value = "defaultPopTransition")
val defaultPopTransition: ContentTransitionSchema?
Link copied to clipboard
@SerialName(value = "defaultPredictivePopTransition")
val defaultPredictivePopTransition: ContentTransitionSchema?
Link copied to clipboard
@SerialName(value = "defaultTransition")
val defaultTransition: ContentTransitionSchema?
Link copied to clipboard
Link copied to clipboard
@SerialName(value = "events")
open override val events: SerializableImmutableList<EventSchema>?
Link copied to clipboard
@SerialName(value = "id")
open override val id: String
Link copied to clipboard
@SerialName(value = "navigatorId")
val navigatorId: String
Link copied to clipboard
@SerialName(value = "searchableTerms")
open override val searchableTerms: SerializableImmutableList<String>?
Link copied to clipboard
@SerialName(value = "startEntryId")
val startEntryId: String
Link copied to clipboard
@SerialName(value = "style")
open override val style: StyleSchema
Link copied to clipboard
@SerialName(value = "visibility")
open override val visibility: TileSchema.Visibility

Functions

Link copied to clipboard
open fun isGone(): Boolean
Link copied to clipboard
open fun isVisible(): Boolean