androidx.compose.material3 1.3.0中LinearProgressIndicator显示分裂求助
解决Material3 1.3.0中LinearProgressIndicator显示异常问题
你遇到的是Material3 1.3.0版本对LinearProgressIndicator绘制逻辑调整后出现的兼容性问题——当设置strokeCap = StrokeCap.Round且进度条高度较大时,组件会错误地将进度末端渲染为独立圆点,导致进度条分裂。以下是两种可行的修复方案:
方案1:调整strokeCap参数
移除strokeCap设置,或者将其改为StrokeCap.Butt,即可恢复连续的进度条显示:
@Composable fun CustomProgressBar() { LinearProgressIndicator( progress = { 0.5f }, trackColor = Color.Gray, modifier = Modifier .width(200.dp) .height(15.dp), color = Color.Blue, strokeCap = StrokeCap.Butt ) }
方案2:自定义绘制进度条
如果需要保留圆角效果,可以完全自定义进度条的绘制逻辑,避免依赖系统组件的问题:
@Composable fun CustomProgressBar() { val progressValue = 0.5f Box( modifier = Modifier .width(200.dp) .height(15.dp) .background(Color.Gray, shape = RoundedCornerShape(15.dp)) ) { Box( modifier = Modifier .fillMaxHeight() .fillMaxWidth(progressValue) .background(Color.Blue, shape = RoundedCornerShape(15.dp)) ) } }
这个问题是Material3 1.3.0版本的已知兼容性问题,后续官方版本可能会修复,当前可以通过上述方案临时解决。
内容的提问来源于stack exchange,提问作者Alperen İmamoğlu
相关产品推荐
相关产品推荐

