# ScreenScaffold

## Functions summary

|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider?, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/ScrollState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider?, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/ScrollState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)( scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState, edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html, modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier, contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues, timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?, edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp, overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect?, content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components. |

## Functions

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    modifier: Modifier = Modifier,
    scrollInfoProvider: ScrollInfoProvider? = null,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = null,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider? = null` | Provider for scroll information used to scroll away screen elements such as the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and coordinate showing/hiding the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: LazyListState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: ScalingLazyListState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: ScrollState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`. Note that this version doesn't support a bottom button slot, for that use the overload that takes `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` or the one that takes a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/ScrollState` | The scroll state for a Column, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: TransformingLazyColumnState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumn.composable#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,androidx.wear.compose.foundation.lazy.TransformingLazyColumnFirstLayoutItemProvider,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0)

```
@Composable
fun ScreenScaffold(
    modifier: Modifier = Modifier,
    scrollInfoProvider: ScrollInfoProvider? = null,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = null,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider? = null` | Provider for scroll information used to scroll away screen elements such as the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and coordinate showing/hiding the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.ScrollInfoProvider,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0)

```
@Composable
fun ScreenScaffold(
    scrollState: LazyListState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0)

```
@Composable
fun ScreenScaffold(
    scrollState: ScalingLazyListState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0)

```
@Composable
fun ScreenScaffold(
    scrollState: ScrollState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`. Note that this version doesn't support a bottom button slot, for that use the overload that takes `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` or the one that takes a `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/ScrollState` | The scroll state for a Column, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold) Added in [1.5.0](https://developer.android.com/jetpack/androidx/releases/wear-compose#1.5.0)

```
@Composable
fun ScreenScaffold(
    scrollState: TransformingLazyColumnState,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

Example of using AppScaffold and ScreenScaffold:

```kotlin
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.ui.Modifier
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()

    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(scrollState = listState) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            contentPadding = contentPadding,
            modifier = Modifier.fillMaxSize(),
        ) {
            items(10) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

![ScaffoldSample Composite
Image](https://developer.android.com/wear/images/design/WearComposeM3_ScaffoldSample_CompositeImage.png)

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumn.composable#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,androidx.wear.compose.foundation.lazy.TransformingLazyColumnFirstLayoutItemProvider,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollInfoProvider: ScrollInfoProvider,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = null,
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`), `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and the bottom button according to a `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content. In this overload, both edgeButton and scrollInfoProvider must be specified.

| Parameters |
|---|---|
| `scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider` | Provider for scroll information used to scroll away screen elements such as the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and coordinate showing/hiding the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. This gap size could not be smaller than `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffoldDefaults#EdgeButtonMinSpacing()`. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: LazyListState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: ScalingLazyListState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

When using ScreenScaffold with `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, you should pass autoCentering = null for the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)` in order to achieve the correct spacing above the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: TransformingLazyColumnState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

On devices that support the system status bar, the system status bar overlay replaces application-rendered `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`. On devices that do not support the system status bar, this scaffold automatically falls back to inheriting standard in-app `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

Example of using AppScaffold and ScreenScaffold with TransformingLazyColumn:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.foundation.gestures.scrollable
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.rememberOverscrollEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold(modifier = Modifier.background(Color.Black)) {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()
    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(
        scrollState = listState,
        // Define custom spacing between [EdgeButton] and [TransformingLazyColumn].
        edgeButtonSpacing = 15.dp,
        edgeButton = {
            EdgeButton(
                onClick = {},
                modifier =
                    // In case user starts scrolling from the EdgeButton.
                    Modifier.scrollable(
                        listState,
                        orientation = Orientation.Vertical,
                        reverseDirection = true,
                        // An overscroll effect should be applied to the EdgeButton for proper
                        // scrolling behavior.
                        overscrollEffect = rememberOverscrollEffect(),
                    ),
            ) {
                Text("Clear All")
            }
        },
    ) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            modifier = Modifier.fillMaxSize(),
            // Bottom spacing is derived from [ScreenScaffold.edgeButtonSpacing].
            contentPadding = contentPadding,
        ) {
            items(4) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumn.composable#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,androidx.wear.compose.foundation.lazy.TransformingLazyColumnFirstLayoutItemProvider,kotlin.Function1)`, used to drive screen transitions such as system status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollInfoProvider: ScrollInfoProvider,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = null,
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`), `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and the bottom button according to a `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content. In this overload, both edgeButton and scrollInfoProvider must be specified.

| Parameters |
|---|---|
| `scrollInfoProvider: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/ScrollInfoProvider` | Provider for scroll information used to scroll away screen elements such as the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and coordinate showing/hiding the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. This gap size could not be smaller than `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffoldDefaults#EdgeButtonMinSpacing()`. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.ScrollInfoProvider,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: LazyListState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/compose/foundation/lazy/LazyColumn.composable#LazyColumn(androidx.compose.ui.Modifier,androidx.compose.foundation.lazy.LazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.compose.foundation.OverscrollEffect,androidx.compose.foundation.lazy.layout.LazyLayoutCacheWindow,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.compose.foundation.lazy.LazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.foundation.OverscrollEffect,androidx.compose.ui.unit.Dp,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: ScalingLazyListState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

When using ScreenScaffold with `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, you should pass autoCentering = null for the `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)` in order to achieve the correct spacing above the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`.

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyListState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/ScalingLazyColumn.composable#ScalingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.ScalingLazyListState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.lazy.ScalingParams,androidx.wear.compose.foundation.lazy.ScalingLazyListAnchorType,androidx.wear.compose.foundation.lazy.AutoCenteringParams,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.ScalingLazyListState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |

### ScreenScaffold

Artifact: [androidx.wear.compose:compose-material3](https://developer.android.com/jetpack/androidx/releases/wear-compose) [View Source](https://cs.android.com/search?q=file:androidx/wear/compose/material3/ScreenScaffold.kt+function:ScreenScaffold)

```
@Composable
fun ScreenScaffold(
    scrollState: TransformingLazyColumnState,
    edgeButton: @Composable BoxScope.() -> Unit,
    modifier: Modifier = Modifier,
    contentPadding: PaddingValues = ScreenScaffoldDefaults.contentPadding,
    timeText: (@Composable () -> Unit)? = null,
    scrollIndicator: (@Composable BoxScope.() -> Unit)? = { ScrollIndicator(scrollState) },
    edgeButtonSpacing: Dp = ScreenScaffoldDefaults.EdgeButtonSpacing,
    overscrollEffect: OverscrollEffect? = rememberOverscrollEffect(),
    content: @Composable BoxScope.(PaddingValues) -> Unit
): Unit
```

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` is one of the Wear Material3 scaffold components.

The scaffold components `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` lay out the structure of a screen and coordinate transitions of the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)` components. `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` should be at the top of the composition and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` should be part of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)`'s content. When used in conjunction with a navigation component such as Navigation3's NavDisplay with SwipeDismissableSceneStrategy or Navigation's SwipeDismissableNavHost, `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` remains at the top of the composition, whilst `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` will be placed for each individual composable route.

This overload supports passing a custom `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` or disabling the system status bar overlay for this screen. For screens that do not require custom time text, use the overload without the timeText parameter.

`https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` displays the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` at the center-end of the screen by default and coordinates showing/hiding the status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` according to `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)`.

This version of `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScreenScaffold.composable#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` has a special slot for a button at the bottom, that grows and shrinks to take the available space after the scrollable content.

Example of using AppScaffold and ScreenScaffold with TransformingLazyColumn:

```kotlin
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.Orientation
import androidx.compose.foundation.gestures.scrollable
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.rememberOverscrollEffect
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp
import androidx.wear.compose.foundation.lazy.TransformingLazyColumn
import androidx.wear.compose.foundation.lazy.rememberTransformingLazyColumnState
import androidx.wear.compose.material3.AppScaffold
import androidx.wear.compose.material3.Button
import androidx.wear.compose.material3.ButtonDefaults
import androidx.wear.compose.material3.EdgeButton
import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.SurfaceTransformation
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.lazy.rememberTransformationSpec
import androidx.wear.compose.material3.lazy.transformedHeight

// Declare just one [AppScaffold] per app such as in the activity.
// [AppScaffold] allows static screen elements (i.e. [TimeText]) to remain visible
// during in-app transitions such as swipe-to-dismiss.
AppScaffold(modifier = Modifier.background(Color.Black)) {
    val transformationSpec = rememberTransformationSpec()

    // Define the navigation hierarchy within the AppScaffold,
    // such as using SwipeDismissableNavHost.
    // For this sample, we will define a single screen inline.
    val listState = rememberTransformingLazyColumnState()
    // By default, ScreenScaffold will handle transitions showing/hiding ScrollIndicator,
    // showing/hiding/scrolling away TimeText and optionally hosting the EdgeButton.
    ScreenScaffold(
        scrollState = listState,
        // Define custom spacing between [EdgeButton] and [TransformingLazyColumn].
        edgeButtonSpacing = 15.dp,
        edgeButton = {
            EdgeButton(
                onClick = {},
                modifier =
                    // In case user starts scrolling from the EdgeButton.
                    Modifier.scrollable(
                        listState,
                        orientation = Orientation.Vertical,
                        reverseDirection = true,
                        // An overscroll effect should be applied to the EdgeButton for proper
                        // scrolling behavior.
                        overscrollEffect = rememberOverscrollEffect(),
                    ),
            ) {
                Text("Clear All")
            }
        },
    ) { contentPadding ->
        TransformingLazyColumn(
            state = listState,
            modifier = Modifier.fillMaxSize(),
            // Bottom spacing is derived from [ScreenScaffold.edgeButtonSpacing].
            contentPadding = contentPadding,
        ) {
            items(4) {
                Button(
                    onClick = {},
                    label = { Text("Item ${it + 1}") },
                    transformation = SurfaceTransformation(transformationSpec),
                    modifier =
                        Modifier.transformedHeight(this, transformationSpec)
                            .minimumVerticalContentPadding(
                                ButtonDefaults.minimumVerticalListContentPadding
                            )
                            .fillMaxWidth(),
                )
            }
        }
    }
}
```

| Parameters |
|---|---|
| `scrollState: https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumnState` | The scroll state for `https://developer.android.com/reference/kotlin/androidx/wear/compose/foundation/lazy/TransformingLazyColumn.composable#TransformingLazyColumn(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,androidx.compose.foundation.layout.PaddingValues,kotlin.Boolean,androidx.compose.foundation.layout.Arrangement.Vertical,androidx.compose.ui.Alignment.Horizontal,androidx.compose.foundation.gestures.FlingBehavior,kotlin.Boolean,androidx.wear.compose.foundation.rotary.RotaryScrollableBehavior,androidx.compose.foundation.OverscrollEffect,androidx.wear.compose.foundation.lazy.TransformingLazyColumnFirstLayoutItemProvider,kotlin.Function1)`, used to drive screen transitions such as status bar (or `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/TimeText.composable#TimeText(androidx.compose.ui.Modifier,androidx.wear.compose.foundation.CurvedModifier,kotlin.Float,androidx.compose.ui.graphics.Color,androidx.wear.compose.material3.TimeSource,androidx.compose.foundation.layout.PaddingValues,kotlin.Function2)`) scroll away and showing/hiding `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)`. |
| `edgeButton: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | Slot for an `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` that takes the available space below a scrolling list. It will scale up and fade in when the user scrolls to the end of the list, and scale down and fade out as the user scrolls up. |
| `modifier: https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier = Modifier` | The modifier for the screen scaffold. |
| `contentPadding: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues = ScreenScaffoldDefaults.contentPadding` | The padding to apply around the entire content. This contentPadding is then received by the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and should be consumed by using `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter of the lazy lists. To guarantee frame-0 inset stability when using `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/suppressStatusBar.modifier#(androidx.compose.ui.Modifier).suppressStatusBar()`, pass this padding to containers like TransformingLazyColumn or layout modifiers like `Modifier.padding`, rather than inspecting its values directly during composition via functions like calculateTopPadding. The bottom padding value is always ignored because we instead use `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` to specify the gap between edge button and content - and the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` hugs the bottom of the screen. |
| `timeText: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable () -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = null` | The time text and status bar configuration for this screen: - `null` (default): inherits status bar mode and time text from `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/AppScaffold.composable#AppScaffold(androidx.compose.ui.Modifier,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,kotlin.Function1)` or underlying screens. - Any custom composable: disables the system status bar overlay and renders this composable locally in place of the status bar. |
| `scrollIndicator: (@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)? = { ScrollIndicator(scrollState) }` | The `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` to display on this screen, which is expected to be aligned to Center-End. It is recommended to use the Material3 `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/ScrollIndicator.composable#ScrollIndicator(androidx.compose.foundation.ScrollState,androidx.compose.ui.Modifier,androidx.wear.compose.material3.ScrollIndicatorColors,kotlin.Boolean,androidx.compose.animation.core.AnimationSpec)` which is provided by default. No scroll indicator is displayed if null is passed. |
| `edgeButtonSpacing: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp = ScreenScaffoldDefaults.EdgeButtonSpacing` | The space between `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)` and the list content. |
| `overscrollEffect: https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect? = rememberOverscrollEffect()` | the `https://developer.android.com/reference/kotlin/androidx/compose/foundation/OverscrollEffect` that will be used to render overscroll for this layout. This overscroll effect will be shared with all components within this ScreenScaffold such as `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` and `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/package-summary#ScreenScaffold(androidx.wear.compose.foundation.lazy.TransformingLazyColumnState,kotlin.Function1,androidx.compose.ui.Modifier,androidx.compose.foundation.layout.PaddingValues,kotlin.Function0,kotlin.Function1,androidx.compose.ui.unit.Dp,androidx.compose.foundation.OverscrollEffect,kotlin.Function2)` through `https://developer.android.com/reference/kotlin/androidx/compose/foundation/package-summary#LocalOverscrollFactory()`. If necessary, this behaviour can be disabled by passing overscrollEffect = null. |
| `content: @https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/BoxScope.(https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | The body content for this screen. The lambda receives a `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues` that should be applied to the content root via `https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/padding.modifier#(androidx.compose.ui.Modifier).padding(androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp)` or contentPadding parameter when used with lists to properly offset the `https://developer.android.com/reference/kotlin/androidx/wear/compose/material3/EdgeButton.composable#EdgeButton(kotlin.Function0,androidx.compose.ui.Modifier,androidx.wear.compose.material3.EdgeButtonSize,kotlin.Boolean,androidx.wear.compose.material3.ButtonColors,androidx.compose.foundation.BorderStroke,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)`. |