A Material Design loading indicator.
DeterminateLoadingIndicatorSample
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Preview
@Composable
fun DeterminateLoadingIndicatorSample() {
var progress by remember { mutableFloatStateOf(0f) }
val animatedProgress by
animateFloatAsState(
targetValue = progress,
animationSpec =
spring(
dampingRatio = Spring.DampingRatioNoBouncy,
stiffness = Spring.StiffnessVeryLow,
visibilityThreshold = 1 / 1000f,
),
)
Column(horizontalAlignment = Alignment.CenterHorizontally) {
LoadingIndicator(progress = { animatedProgress })
Spacer(Modifier.requiredHeight(30.dp))
Text("Set loading progress:")
Slider(
modifier = Modifier.width(300.dp),
value = progress,
valueRange = 0f..1f,
onValueChange = { progress = it },
)
}
}
LoadingIndicatorSample
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
@Preview
@Composable
fun LoadingIndicatorSample() {
Column(horizontalAlignment = Alignment.CenterHorizontally) { LoadingIndicator() }
}