RangeSliderState


Class that holds information about RangeSlider's active range.

Summary

Public companion functions

Saver<RangeSliderState, *>
Saver(
    steps: Int,
    valueRange: ClosedFloatingPointRange<Float>,
    onValueChangeFinished: (() -> Unit)?
)

The default Saver implementation for RangeSliderState.

Cmn

Public constructors

@RememberInComposition
RangeSliderState(
    activeRangeStart: Float,
    activeRangeEnd: Float,
    steps: @IntRange(from = 0) Int,
    onValueChangeFinished: (() -> Unit)?,
    valueRange: ClosedFloatingPointRange<Float>
)
Cmn

Public properties

Float

Float that indicates the end of the current active range for the RangeSlider.

Cmn
Float

Float that indicates the start of the current active range for the RangeSlider.

Cmn
(() -> Unit)?

lambda to be invoked when value change has ended.

Cmn
Int

if positive, specifies the amount of discrete allowable values between the endpoints of valueRange.

Cmn
ClosedFloatingPointRange<Float>

the full range of values that the entire Range Slider track represents.

Cmn

Public companion functions

Saver

fun Saver(
    steps: Int,
    valueRange: ClosedFloatingPointRange<Float>,
    onValueChangeFinished: (() -> Unit)?
): Saver<RangeSliderState, *>

The default Saver implementation for RangeSliderState.

Parameters
steps: Int

if positive, specifies the amount of discrete allowable values between the endpoints of valueRange.

valueRange: ClosedFloatingPointRange<Float>

range of values that Range Slider values can take. activeRangeStart and activeRangeEnd will be coerced to this range.

onValueChangeFinished: (() -> Unit)?

lambda to be invoked when value change has ended.

Public constructors

RangeSliderState

@RememberInComposition
RangeSliderState(
    activeRangeStart: Float = 0.0f,
    activeRangeEnd: Float = 1.0f,
    steps: @IntRange(from = 0) Int = 0,
    onValueChangeFinished: (() -> Unit)? = null,
    valueRange: ClosedFloatingPointRange<Float> = 0f..1f
)
Parameters
activeRangeStart: Float = 0.0f

Float that indicates the initial start value of the selected active range (for the start thumb). This represents a specific position on the track and is coerced to the bounds of valueRange.

activeRangeEnd: Float = 1.0f

Float that indicates the initial end value of the selected active range (for the end thumb). This represents a specific position on the track and is coerced to the bounds of valueRange.

steps: @IntRange(from = 0) Int = 0

if positive, specifies the amount of discrete allowable values between the endpoints of valueRange. For example, a range from 0 to 10 with 4 steps allows 4 values evenly distributed between 0 and 10 (i.e., 2, 4, 6, 8). If steps is 0, the slider will behave continuously and allow any value from the range. Must not be negative.

onValueChangeFinished: (() -> Unit)? = null

lambda to be invoked when value change has ended. This callback shouldn't be used to update the range slider values (use onValueChange for that), but rather to know when the user has completed selecting a new value by ending a drag or a click. For keyboard movements, this is called on every step.

valueRange: ClosedFloatingPointRange<Float> = 0f..1f

the full range of values that the entire Range Slider track represents. This defines the absolute boundaries/constraints of the slider (from minimum to maximum), and the individual thumb values (activeRangeStart and activeRangeEnd) are coerced to this range.

Public properties

activeRangeEnd

var activeRangeEndFloat

Float that indicates the end of the current active range for the RangeSlider.

activeRangeStart

var activeRangeStartFloat

Float that indicates the start of the current active range for the RangeSlider.

onValueChangeFinished

var onValueChangeFinished: (() -> Unit)?

lambda to be invoked when value change has ended. This callback shouldn't be used to update the range slider values (use onValueChange for that), but rather to know when the user has completed selecting a new value by ending a drag or a click. For keyboard movements, this is called on every step.

steps

val stepsInt

if positive, specifies the amount of discrete allowable values between the endpoints of valueRange. For example, a range from 0 to 10 with 4 steps allows 4 values evenly distributed between 0 and 10 (i.e., 2, 4, 6, 8). If steps is 0, the slider will behave continuously and allow any value from the range. Must not be negative.

valueRange

val valueRangeClosedFloatingPointRange<Float>

the full range of values that the entire Range Slider track represents. This defines the absolute boundaries/constraints of the slider (from minimum to maximum), and the individual thumb values (activeRangeStart and activeRangeEnd) are coerced to this range.