Jetpack Compose组件-进度指示器(ProgressIndicator)


Jetpack Compose组件-进度指示器(ProgressIndicator)

线性进度指示器(LinearProgressIndicator)

// 等待条
@Composable
fun LinearProgressIndicator(
    // 修饰符
    modifier: Modifier = Modifier,
    // 进度颜色
    color: Color = MaterialTheme.colors.primary,
    // 背景颜色
    backgroundColor: Color = color.copy(alpha = IndicatorBackgroundOpacity),
    // 进度条末端样式
    strokeCap: StrokeCap = StrokeCap.Butt
): Unit

@Composable
fun LinearProgressIndicator(
    // 进度
    progress: Float,
    // 修饰符
    modifier: Modifier = Modifier,
    // 进度颜色
    color: Color = MaterialTheme.colors.primary,
    // 背景颜色
    backgroundColor: Color = color.copy(alpha = IndicatorBackgroundOpacity),
    // 进度条末端样式
    strokeCap: StrokeCap = StrokeCap.Butt
): Unit
var progress by remember { mutableStateOf(0.1f) }
val animatedProgress by animateFloatAsState(
    targetValue = progress,
    animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec
)

Column(horizontalAlignment = Alignment.CenterHorizontally) {
    LinearProgressIndicator(progress = animatedProgress)
    Spacer(Modifier.requiredHeight(30.dp))
    OutlinedButton(
        onClick = {
            if (progress < 1f) progress += 0.1f
        }
    ) {
        Text("Increase")
    }
}

圆形进度指示器(CircularProgressIndicator)

@Composable
fun CircularProgressIndicator(
    // 修饰符
    modifier: Modifier = Modifier,
    // 进度颜色
    color: Color = MaterialTheme.colors.primary,
    // 进度条宽度
    strokeWidth: Dp = ProgressIndicatorDefaults.StrokeWidth,
    // 背景颜色
    backgroundColor: Color = Color.Transparent,
    // 进度条末端样式
    strokeCap: StrokeCap = StrokeCap.Square
): Unit

@Composable
fun CircularProgressIndicator(
    // 进度
    progress: Float,
    // 修饰符
    modifier: Modifier = Modifier,
    // 进度颜色
    color: Color = MaterialTheme.colors.primary,
    // 进度条宽度
    strokeWidth: Dp = ProgressIndicatorDefaults.StrokeWidth,
    // 背景颜色
    backgroundColor: Color = Color.Transparent,
    // 进度条末端样式
    strokeCap: StrokeCap = StrokeCap.Butt
): Unit
var progress by remember { mutableStateOf(0.1f) }
val animatedProgress by animateFloatAsState(
    targetValue = progress,
    animationSpec = ProgressIndicatorDefaults.ProgressAnimationSpec
)

Column(horizontalAlignment = Alignment.CenterHorizontally) {
    CircularProgressIndicator(progress = animatedProgress)
    Spacer(Modifier.requiredHeight(30.dp))
    OutlinedButton(
        onClick = {
            if (progress < 1f) progress += 0.1f
        }
    ) {
        Text("Increase")
    }
}

文章作者: Vinx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Vinx !
 上一篇
Jetpack Compose组件-平面(Surface) Jetpack Compose组件-平面(Surface)
Jetpack Compose组件-平面(Surface) 平面(Surface) 将很多的组件摆放在这个平面之上,我们可以设置这个平面的边框,圆角,颜色等等。 Surface实际上是Box的重新包装。 @Composable f
下一篇 
Jetpack Compose组件-滑动条(Slider) Jetpack Compose组件-滑动条(Slider)
Jetpack Compose组件-滑动条(Slider) 滑动条(Slider) Slider 允许用户从一定范围的数值中进行选择。 Slider 反映了一个沿条的数值范围,用户可以从中选择一个单一的数值。它们是调整音量、亮度或
  目录