LevelIndicator
Composable Component
Creates a LevelIndicator for screens that that control a setting such as volume with either
rotating side button, rotating bezel.
Android
@Composable
public fun LevelIndicator(
value: () -> Float,
modifier: Modifier = Modifier,
enabled: Boolean = true,
colors: LevelIndicatorColors = LevelIndicatorDefaults.colors(),
strokeWidth: Dp = LevelIndicatorDefaults.StrokeWidth,
@FloatRange(from = 0.0, to = 360.0) sweepAngle: Float = LevelIndicatorDefaults.SweepAngle,
reverseDirection: Boolean = false,
)
Parameters
| value | Value of the indicator as a fraction in the range 0,1. Values outside of the range 0,1 will be coerced. |
| modifier | Modifier to be applied to the component |
| enabled | Controls the enabled state of LevelIndicator - when false, disabled colors will be used. |
| colors | LevelIndicatorColors that will be used to resolve the indicator and track colors for this LevelIndicator in different states |
| strokeWidth | The stroke width for the indicator and track strokes |
| sweepAngle | The angle covered by the curved LevelIndicator, in degrees |
| reverseDirection | Reverses direction of PositionIndicator if true |
Code Examples
LevelIndicatorSample
@Composable
fun LevelIndicatorSample() {
var value by remember { mutableFloatStateOf(0.5f) }
Box(modifier = Modifier.fillMaxSize()) {
Column(
verticalArrangement = Arrangement.SpaceEvenly,
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier.fillMaxSize(),
) {
IconButton(
modifier = Modifier.padding(horizontal = 16.dp),
enabled = value < 1f,
onClick = { value += 0.1f },
) {
VolumeUpIcon(StepperDefaults.IconSize)
}
IconButton(
modifier = Modifier.padding(horizontal = 16.dp),
enabled = value > 0f,
onClick = { value -= 0.1f },
) {
VolumeDownIcon(StepperDefaults.IconSize)
}
}
LevelIndicator(value = { value }, modifier = Modifier.align(Alignment.CenterStart))
}
}