Navigator

A basic navigation interface for navigating between screens.

Inheritors

Types

Link copied to clipboard
object NoOp : Navigator

A no-op implementation of Navigator that performs no actual navigation.

Link copied to clipboard
data class StateOptions(val save: Boolean = false, val restore: Boolean = false, val clear: Boolean = false)

A holder for the state management configuration for a Navigator.resetRoot call.

Functions

Link copied to clipboard
abstract fun backward(): Boolean

Move backward in navigation history toward the root.

Link copied to clipboard
abstract fun forward(): Boolean

Move forward in navigation history toward the top.

Link copied to clipboard
abstract override fun goTo(screen: Screen): Boolean

Navigate to the screen.

Link copied to clipboard
abstract fun peek(): Screen?

Returns current top most screen of backstack, or null if the navStack is empty.

Link copied to clipboard
abstract fun peekBackStack(): List<Screen>

Returns the current back stack.

Link copied to clipboard
abstract fun peekNavStack(): NavStackList<Screen>?

Returns a snapshot of the current navigation stack, or null if empty.

Link copied to clipboard
abstract fun pop(result: PopResult? = null): Screen?

Remove and return the current screen from the navigation stack.

Link copied to clipboard
fun Navigator.popRoot(result: PopResult? = null)

Pop the Navigator as if this was the root Navigator.pop call.

Link copied to clipboard
fun Navigator.popUntil(predicate: (Screen) -> Boolean)

Calls Navigator.pop until the given predicate is matched or it pops the root.

Link copied to clipboard
abstract fun resetRoot(newRoot: Screen, options: Navigator.StateOptions = StateOptions.Default): List<Screen>

Clear the existing backstack of screens and navigate to newRoot.

Link copied to clipboard
fun Navigator.resetRoot(newRoot: Screen, saveState: Boolean = false, restoreState: Boolean = false, clearState: Boolean = false): List<Screen>

Parameter based alternate for Navigator.resetRoot.

inline fun Navigator.resetRoot(newRoot: Screen, saveState: (currentRoot: Screen?) -> Boolean = { false }, restoreState: (currentRoot: Screen?) -> Boolean = { false }, clearState: (currentRoot: Screen?) -> Boolean = { false }): List<Screen>

Clear the existing backstack of screens and navigate to newRoot.