# BackdropScaffoldState

Artifact: [androidx.compose.material:material](https://developer.android.com/jetpack/androidx/releases/compose-material) [View Source](https://cs.android.com/search?q=file:androidx/compose/material/BackdropScaffold.kt+class:androidx.compose.material.BackdropScaffoldState) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0) Common/AllAndroid/JVM
- Cmn

  ```
  class BackdropScaffoldState
  ```

*** ** * ** ***

State of the `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffold.composable#BackdropScaffold(kotlin.Function0,kotlin.Function0,kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material.BackdropScaffoldState,kotlin.Function1,kotlin.Boolean,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,kotlin.Boolean,kotlin.Boolean,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Shape,androidx.compose.ui.unit.Dp,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color)` composable.

## Summary

| ### Public companion functions |
|---|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/Saver<https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState, *>` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#Saver(androidx.compose.animation.core.AnimationSpec,kotlin.Function1,androidx.compose.material.SnackbarHostState,androidx.compose.ui.unit.Density)( animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>, confirmStateChange: (https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, snackbarHostState: https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState, density: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Density )` The default `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#Saver(androidx.compose.animation.core.AnimationSpec,kotlin.Function1,androidx.compose.material.SnackbarHostState,androidx.compose.ui.unit.Density)` implementation for `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState`. | Cmn |

| ### Public constructors |
|---|---|
| `[BackdropScaffoldState](https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#BackdropScaffoldState(androidx.compose.material.BackdropValue,androidx.compose.animation.core.AnimationSpec,kotlin.Function1,androidx.compose.material.SnackbarHostState))( initialValue: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue, animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html>, confirmValueChange: (https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, snackbarHostState: https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState )` **This function is deprecated.** This constructor is deprecated. | Cmn |

| ### Public functions |
|---|---|---|
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#conceal()()` Conceal the back layer with animation and suspend until it if fully concealed or animation has been cancelled. | Cmn |
| `@https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)(from: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue, to: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue)` The fraction of the offset between `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)` and `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)`, as a fraction between 0f..1f, or 1f if `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)` is equal to `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#requireOffset()()` Require the current offset. | Cmn |
| `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#reveal()()` Reveal the back layer with animation and suspend until it if fully revealed or animation has been cancelled. | Cmn |

| ### Public properties |
|---|---|---|
| `(https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#confirmValueChange()` Optional callback invoked to confirm or veto a pending state change. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#currentValue()` The current value of the `https://developer.android.com/reference/kotlin/androidx/compose/material/BottomSheetState`. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#isConcealed()` Whether the back layer is concealed. | Cmn |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#isRevealed()` Whether the back layer is revealed. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#snackbarHostState()` The `https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState` used to show snackbars inside the scaffold. | Cmn |
| `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue` | `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#targetValue()` The target value the state will settle at once the current interaction ends, or the `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#currentValue()` if there is no interaction in progress. | Cmn |

## Public companion functions

### Saver

Cmn Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0)

```
fun Saver(
    animationSpec: AnimationSpec<Float>,
    confirmStateChange: (BackdropValue) -> Boolean,
    snackbarHostState: SnackbarHostState,
    density: Density
): Saver<BackdropScaffoldState, *>
```

The default `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#Saver(androidx.compose.animation.core.AnimationSpec,kotlin.Function1,androidx.compose.material.SnackbarHostState,androidx.compose.ui.unit.Density)` implementation for `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState`.

## Public constructors

### BackdropScaffoldState

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0) Deprecated in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0)

```
[BackdropScaffoldState](https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#BackdropScaffoldState(androidx.compose.material.BackdropValue,androidx.compose.animation.core.AnimationSpec,kotlin.Function1,androidx.compose.material.SnackbarHostState))(
    initialValue: BackdropValue,
    animationSpec: AnimationSpec<Float> = BackdropScaffoldDefaults.AnimationSpec,
    confirmValueChange: (BackdropValue) -> Boolean = { true },
    snackbarHostState: SnackbarHostState = SnackbarHostState()
)
```

> [!CAUTION]
> **This function is deprecated.**   
> This constructor is deprecated. Density must be provided by the component. Please use the constructor that provides a \[Density\], use this instead:
>
> ```kotlin
>             BackdropScaffoldState(
>                 initialValue = initialValue,
>                 density = LocalDensity.current,
>                 animationSpec = animationSpec,
>                 confirmValueChange = confirmValueChange
>             )
>             
> ```

| Parameters |
|---|---|
| `initialValue: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue` | The initial value of the state. |
| `animationSpec: https://developer.android.com/reference/kotlin/androidx/compose/animation/core/AnimationSpec<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html> = BackdropScaffoldDefaults.AnimationSpec` | The default animation that will be used to animate to a new state. |
| `confirmValueChange: (https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue) -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html = { true }` | Optional callback invoked to confirm or veto a pending state change. |
| `snackbarHostState: https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState = SnackbarHostState()` | The `https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState` used to show snackbars inside the scaffold. |

## Public functions

### conceal

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0)

```
suspend fun conceal(): Unit
```

Conceal the back layer with animation and suspend until it if fully concealed or animation has been cancelled. This method will throw `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-cancellation-exception/index.html` if the animation is interrupted

### progress

Cmn Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0)

```
fun progress(from: BackdropValue, to: BackdropValue): @FloatRange(from = 0.0, to = 1.0) Float
```

The fraction of the offset between `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)` and `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)`, as a fraction between 0f..1f, or 1f if `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)` is equal to `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#progress(androidx.compose.material.BackdropValue,androidx.compose.material.BackdropValue)`.

| Parameters |
|---|---|
| `from: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue` | The starting value used to calculate the distance |
| `to: https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropValue` | The end value used to calculate the distance |

### requireOffset

Cmn Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0)

```
fun requireOffset(): Float
```

Require the current offset.

| Throws |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-illegal-state-exception/index.html` | If the offset has not been initialized yet |

### reveal

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0)

```
suspend fun reveal(): Unit
```

Reveal the back layer with animation and suspend until it if fully revealed or animation has been cancelled. This method will throw `https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-cancellation-exception/index.html` if the animation is interrupted

## Public properties

### confirmValueChange

Cmn Added in [1.7.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.7.0)

```
val confirmValueChange: (BackdropValue) -> Boolean
```

Optional callback invoked to confirm or veto a pending state change.

### currentValue

Cmn

```
val currentValue: BackdropValue
```

The current value of the `https://developer.android.com/reference/kotlin/androidx/compose/material/BottomSheetState`.

### isConcealed

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0)

```
val isConcealed: Boolean
```

Whether the back layer is concealed.

### isRevealed

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0)

```
val isRevealed: Boolean
```

Whether the back layer is revealed.

### snackbarHostState

Cmn Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material#1.0.0)

```
val snackbarHostState: SnackbarHostState
```

The `https://developer.android.com/reference/kotlin/androidx/compose/material/SnackbarHostState` used to show snackbars inside the scaffold.

### targetValue

Cmn

```
val targetValue: BackdropValue
```

The target value the state will settle at once the current interaction ends, or the `https://developer.android.com/reference/kotlin/androidx/compose/material/BackdropScaffoldState#currentValue()` if there is no interaction in progress.