public class RevealState @RememberInComposition constructor(initialValue: RevealValue)
A class to keep track of the state of the composable. It can be used to customise the behavior and state of the composable.
Parameters
| initialValue | The initial value of this state. |
Properties
currentValue
public val currentValue: RevealValue
The current RevealValue based on the status of the component.
targetValue
public val targetValue: RevealValue
The target RevealValue based on the status of the component. This will be equal to the currentValue if there is no animation running or swiping has stopped. Otherwise, this returns the next RevealValue based on the animation/swipe direction.
isAnimationRunning
public val isAnimationRunning: Boolean
Returns whether the animation is running or not.
offset
public val offset: Float
The current amount by which the revealable content has been revealed.
Functions
snapTo
public suspend fun snapTo(targetValue: RevealValue)
Snaps to the targetValue without any animation (if a previous item was already revealed, that item will be reset to the covered state with animation).
Parameters
| targetValue | The target RevealValue where the currentValue will be changed to. |
animateTo
public suspend fun animateTo(targetValue: RevealValue)
Animates to the targetValue with the animation spec provided.
Parameters
| targetValue | The target RevealValue where the currentValue will animate to. |
dispatchRawDelta
public fun dispatchRawDelta(delta: Float): Float
Drag by the supplied delta, coerce it in the swipe bounds and return the remaining available. These bounds are determined by the screen width and the configured RevealDirection.
Parameters
| delta | The delta (positive or negative) to drag |
Returns
| The consumed delta |
offsetOf
public fun offsetOf(revealValue: RevealValue): Float
Get the offset position for an associated RevealValue
Parameters
| revealValue | The value to look up |
Returns
The offset of the revealValue, or Float.NaN if the revealValue does not exist or not supported by current SwipeToReveal and RevealState instance |
drag
public suspend fun drag(
dragPriority: MutatePriority = MutatePriority.Default,
block: suspend SwipeToRevealDragScope.() -> Unit,
)
Call this function to take control of the drag logic and mutate the offset.
All actions that change the offset of this RevealState must be performed within a drag block (even if they don't call any other methods on this object) in order to guarantee that mutual exclusion is enforced. The offset provided to SwipeToRevealDragScope.dragTo will be coerced to the interval of the min/max offset values of RevealValue.
If drag is called from elsewhere with the dragPriority higher or equal to ongoing drag, the ongoing drag will be cancelled.
If layout dimensions change while the block is being executed, it will be cancelled and re-executed.
Parameters
| dragPriority | of the drag operation |
| block | The suspending block where the drag mutations are performed |