You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetpack Compose报错:Dp与CardElevation类型不匹配(Type mismatch)

解决Jetpack Compose中「Type mismatch: inferred type is Dp but CardElevation was expected」报错

这个报错的核心原因是你使用的Card组件版本(Material 2 vs Material 3)和传入的elevation参数类型不匹配:

  • Material 2的Card(来自androidx.compose.material:material),elevation参数直接接受Dp类型值。
  • Material 3的Card(来自androidx.compose.material3:material3),elevation参数要求传入CardElevation类型(这是一个包含不同状态下阴影值的数据类)。

具体解决步骤:

1. 确认Material版本并修正代码

  • 若使用Material 2:
    确保导入androidx.compose.material.Card,直接传Dp值给elevation:

    import androidx.compose.material.Card
    import androidx.compose.ui.unit.dp
    
    Card(
        elevation = 4.dp,
        // 其他参数如modifier、shape等
    ) {
        // Card内部内容
    }
    
  • 若使用Material 3:
    导入androidx.compose.material3.Card和CardDefaults,通过CardDefaults.cardElevation()创建符合要求的CardElevation实例:

    import androidx.compose.material3.Card
    import androidx.compose.material3.CardDefaults
    import androidx.compose.ui.unit.dp
    
    Card(
        elevation = CardDefaults.cardElevation(defaultElevation = 4.dp),
        // 其他参数
    ) {
        // Card内部内容
    }
    

2. 清理冲突导入

检查代码顶部的导入语句,避免同时导入androidx.compose.material.Card和androidx.compose.material3.Card——这种混合导入会导致编译器混淆,引发类型不匹配问题。

内容的提问来源于stack exchange,提问作者Dmytro Karpinsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:27:09