Added in 1.5.0-alpha17
class SwipeToDismissBoxState
State of the SwipeToDismissBox composable.
Secondary Constructors
Added in 1.5.0-alpha17
constructor(
initialValue: SwipeToDismissBoxValue,
positionalThreshold: (totalDistance: Float) -> Float,
) {
this.anchoredDraggableState = AnchoredDraggableState(initialValue)
this.positionalThreshold = positionalThreshold
}
State of the SwipeToDismissBox composable.
Parameters
| initialValue | The initial value of the state. |
| positionalThreshold | The positional threshold to be used when calculating the target state while a swipe is in progress and when settling after the swipe 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. |
Added in 1.5.0-alpha17
constructor(
initialValue: SwipeToDismissBoxValue,
density: Density,
confirmValueChange: (SwipeToDismissBoxValue) -> Boolean = { true },
positionalThreshold: (totalDistance: Float) -> Float,
) {
this.anchoredDraggableState =
AnchoredDraggableState(
initialValue = initialValue,
confirmValueChange = confirmValueChange,
velocityThreshold = { with(density) { DismissVelocityThreshold.toPx() } },
positionalThreshold = positionalThreshold,
snapAnimationSpec = AnchoredDraggableDefaults.SnapAnimationSpec,
decayAnimationSpec = AnchoredDraggableDefaults.DecayAnimationSpec,
)
}
State of the SwipeToDismissBox composable.
Parameters
| initialValue | The initial value of the state. |
| density | The density that this state can use to convert values to and from dp. |
| confirmValueChange | Optional callback invoked to confirm or veto a pending state change. |
| positionalThreshold | The positional threshold to be used when calculating the target state while a swipe is in progress and when settling after the swipe 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. |
Properties
currentValue
Added in 1.5.0-alpha17
val currentValue: SwipeToDismissBoxValue
The current state value of the SwipeToDismissBoxState.
targetValue
Added in 1.5.0-alpha17
val targetValue: SwipeToDismissBoxValue
The target state. This is the closest state to the current offset (taking into account positional thresholds). If no interactions like animations or drags are in progress, this will be the current state.
settledValue
Added in 1.5.0-alpha17
val settledValue: SwipeToDismissBoxValue
The value the SwipeToDismissBoxState is currently settled at. When progressing through multiple anchors, e.g. A -> B -> C, settledValue will stay the same until settled at an anchor, while currentValue will update to the closest anchor.
progress
Added in 1.5.0-alpha17
@get:FloatRange(from = 0.0, to = 1.0)
val progress: Float
The fraction of the progress going from currentValue to targetValue, within [0f..1f] bounds.
dismissDirection
Added in 1.5.0-alpha17
val dismissDirection: SwipeToDismissBoxValue
The direction (if any) in which the composable has been or is being dismissed.
Use this to change the background of the SwipeToDismissBox if you want different actions on each side.
Functions
requireOffset
Added in 1.5.0-alpha17
fun requireOffset(): Float
Require the current offset.
snapTo
Added in 1.5.0-alpha17
suspend fun snapTo(targetValue: SwipeToDismissBoxValue)
Set the state without any animation and suspend until it's set
Parameters
| targetValue | The new target value |
reset
Added in 1.5.0-alpha17
suspend fun reset() =
anchoredDraggableState.animateTo(targetValue = SwipeToDismissBoxValue.Settled)
Reset the component to the default position with animation and suspend until it if fully reset or animation has been cancelled. This method will throw CancellationException if the animation is interrupted
Returns
| the reason the reset animation ended |
dismiss
Added in 1.5.0-alpha17
suspend fun dismiss(direction: SwipeToDismissBoxValue)
Dismiss the component in the given direction, with an animation and suspend. This method will throw CancellationException if the animation is interrupted
Parameters
| direction | The dismiss direction. |
Companion Object
Methods
Deprecated
ConfirmValueChangeDeprecated
Added in 1.5.0-alpha17
fun Saver(
confirmValueChange: (SwipeToDismissBoxValue) -> Boolean,
positionalThreshold: (totalDistance: Float) -> Float,
density: Density,
) =
Saver<SwipeToDismissBoxState, SwipeToDismissBoxValue>(
save = { it.currentValue },
restore = {
SwipeToDismissBoxState(it, density, confirmValueChange, positionalThreshold)
},
)
Saver implementation for SwipeToDismissBoxState.
Added in 1.5.0-alpha17
fun Saver(positionalThreshold: (totalDistance: Float) -> Float) =
Saver<SwipeToDismissBoxState, SwipeToDismissBoxValue>(
save = { it.currentValue },
restore = { SwipeToDismissBoxState(it, positionalThreshold) },
)
The default Saver implementation for SwipeToDismissBoxState.