NavEaseHost
Zero-rebuild navigation host — DSL graph variant.
Pass a NavEaseGraph built with navEaseGraph. No code generation required.
Parameters
The navigation graph built via navEaseGraph.
Called when back is pressed at the root screen.
true to enable shared-element transitions.
Default screen transition. Defaults to NavTransition.Push.
Zero-rebuild navigation host — ActivityScreen variant.
Register screens via the trailing screens lambda using NavEaseScreenScope.add. Each ActivityScreen subclass receives a typed navKey in its Content override — no casting or .xxxArgs() needed.
class DetailScreen : ActivityScreen<AppScreens.Detail>() {
@Composable
override fun Content(navKey: AppScreens.Detail, navController: NavController) {
Text(navKey.id) // ← typed, no casting
}
}
@Composable fun App() {
NavEaseHost<AppScreens>(start = AppScreens.Home) {
add(HomeScreen())
add(AboutScreen())
add(DetailScreen())
}
}Parameters
The NavKey instance placed on the back stack first.
Called when back is pressed at the root screen.
true to enable shared-element transitions.
Default screen transition. Defaults to NavTransition.Push.
Registration block — call NavEaseScreenScope.add for each screen.
Type Parameters
The sealed NavKey root class (e.g. AppScreens). Must be specified explicitly: NavEaseHost<AppScreens>(...).
Typed auto-discover navigation host — screens whose NavKey belongs to the sealed root class Root are discovered automatically from the global NavEaseAutoRegistry, which is populated by KSP-generated code.
No explicit { add(XxxScreen()) } lambda needed — just supply the type parameter and the start destination:
// Root host — discovers all screens whose NavKey is an AppScreens subtype
@Composable fun App() {
NavEaseHost<AppScreens>(start = AppScreens.Splash, onExitRequest = { finish() })
}
// Nested inner host — discovers only WizardStep screens
NavEaseHost<WizardStep>(
start = WizardStep.SelectRole,
onExitRequest = { outerNav.back() },
navTransition = NavTransition.Push,
)Parameters
The NavKey instance placed on the back stack first.
Called when back is pressed on the root screen.
true to enable shared-element transitions.
Default screen-to-screen animation.
Type Parameters
The sealed NavKey root class whose screens to include (e.g. AppScreens or WizardStep).