Skip to main content
161

Search Lumen

Find components, APIs, guides, and recipes.

GitHub
Android docs
NavigationAndroid

Adaptive navigation scaffold

Adapt Material primary navigation between bottom bar and rail as the window changes.

Public APILumenAdaptiveNavigationScaffoldAndroid / Compose

Native example

Use Adaptive navigation scaffold

Use as the primary app surface when navigation should change between a bottom bar and rail across phones, tablets, folding devices, split screen, and desktop windows. Keep routing and destination state controlled.

Adaptive navigation scaffold rendered in the Android phone emulator Lumen playground
Verified runtime captureAndroid phone emulator
kotlin
LumenAdaptiveNavigationScaffold(
    items = destinations,
    selectedValue = destination,
    onValueChange = ::setDestination,
    onReselect = ::scrollDestinationToTop
) {
    DestinationContent(destination)
}

Reference

Public API

The primary shared and platform-specific options exposed by LumenAdaptiveNavigationScaffold.

APIValues or typeDefaultDescription
itemsList<LumenNavigationItem<Value>>RequiredProvides controlled destinations, badges, icons, and disabled state.
selectedValueValueRequiredIdentifies the active application-owned destination.
onValueChange / onReselectcallbacksApplication-providedSeparates destination changes from repeated activation.
content@Composable () -> UnitRequiredRenders the selected destination without transferring router ownership.

Native behavior

Design and accessibility

When to use it

Use as the primary app surface when navigation should change between a bottom bar and rail across phones, tablets, folding devices, split screen, and desktop windows. Keep routing and destination state controlled.

Accessibility

Material supplies navigation bar or rail semantics, selected and disabled state, keyboard traversal, and badge placement while destination content remains application-owned.

Android docsCompose module