Jetpack Compose Material3中设置Card Elevation遇类型不匹配问题求解
解决Jetpack Compose Card组件Elevation类型不匹配问题
错误原因很明确:你给elevation传的10.dp是Dp类型,但Card组件的elevation参数要求的是CardElevation类型,因此出现类型不匹配。
修正方法是用CardDefaults.cardElevation()方法生成符合要求的CardElevation对象,具体代码如下:
Card( shape = RoundedCornerShape(20.dp), elevation = CardDefaults.cardElevation(defaultElevation = 10.dp) ) { Box(modifier = Modifier.height(200.dp)) { Image( painter = painter, contentDescription = contentDescription, contentScale = ContentScale.Crop ) } }
如果需要给不同交互状态设置不同的阴影高度,还可以在cardElevation()里额外指定其他参数,比如:
Card( shape = RoundedCornerShape(20.dp), elevation = CardDefaults.cardElevation( defaultElevation = 10.dp, pressedElevation = 15.dp, hoveredElevation = 12.dp ) ) { // 内部内容 }
内容的提问来源于stack exchange,提问作者RaJ
相关产品推荐
相关产品推荐

