---
title: "AnchoredDraggableState"
description: "State of the [anchoredDraggable] modifier. Use the constructor overload with anchors if the
anchors are defined in composition, or update the anchors using
[AnchoredDraggableState.updateAnchors].

This contains necessary information about any ongoing drag or animation and provides methods to
change the state either immediately or by starting an animation."
type: "function"
---

<div class='type'>Function</div>


<a id='references'></a>
<div class='sourceset sourceset-common'>Common</div>


> **Deprecated** ConfigurationMovedToModifier

```kotlin
fun <T> AnchoredDraggableState(
    initialValue: T,
    positionalThreshold: (totalDistance: Float) -> Float,
    velocityThreshold: () -> Float,
    snapAnimationSpec: AnimationSpec<Float>,
    decayAnimationSpec: DecayAnimationSpec<Float>,
    confirmValueChange: (newValue: T) -> Boolean = { true },
): AnchoredDraggableState<T>
```


State of the `anchoredDraggable` modifier. Use the constructor overload with anchors if the
anchors are defined in composition, or update the anchors using
`AnchoredDraggableState.updateAnchors`.

This contains necessary information about any ongoing drag or animation and provides methods to
change the state either immediately or by starting an animation.

#### Parameters

| | |
| --- | --- |
| initialValue | The initial value of the state. |
| positionalThreshold | The positional threshold, in px, to be used when calculating the target state while a drag is in progress and when settling after the drag ends. This is the distance from the start of a transition. It will be, depending on the direction of the interaction, added or subtracted from/to the origin offset. It should always be a positive value. |
| velocityThreshold | The velocity threshold (in px per second) that the end velocity has to exceed in order to animate to the next state, even if the `positionalThreshold` has not been reached. |
| confirmValueChange | Optional callback invoked to confirm or veto a pending state change. |




<div class='sourceset sourceset-common'>Common</div>


> **Deprecated** ConfigurationMovedToModifier

```kotlin
fun <T> AnchoredDraggableState(
    initialValue: T,
    anchors: DraggableAnchors<T>,
    positionalThreshold: (totalDistance: Float) -> Float,
    velocityThreshold: () -> Float,
    snapAnimationSpec: AnimationSpec<Float>,
    decayAnimationSpec: DecayAnimationSpec<Float>,
    confirmValueChange: (newValue: T) -> Boolean = { true },
): AnchoredDraggableState<T>
```


Construct an `AnchoredDraggableState` instance with anchors.

#### Parameters

| | |
| --- | --- |
| initialValue | The initial value of the state. |
| anchors | The anchors of the state. Use `AnchoredDraggableState.updateAnchors` to update the anchors later. |
| snapAnimationSpec | The default animation spec that will be used to animate to a new state. |
| decayAnimationSpec | The animation spec that will be used when flinging with a large enough velocity to reach or cross the target state. |
| confirmValueChange | Optional callback invoked to confirm or veto a pending state change. |
| positionalThreshold | The positional threshold, in px, to be used when calculating the target state while a drag is in progress and when settling after the drag ends. This is the distance from the start of a transition. It will be, depending on the direction of the interaction, added or subtracted from/to the origin offset. It should always be a positive value. |
| velocityThreshold | The velocity threshold (in px per second) that the end velocity has to exceed in order to animate to the next state, even if the `positionalThreshold` has not been reached. |




