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

Material3 MenuItemColors.copy()无法使用,报“unresolved reference”错误

结论

这是Material3 1.2.0-beta01版本文档与实际代码不一致的bug,不是你的理解误区。

原因说明

  • MenuItemColors在该版本中是一个接口,而非Kotlin的data class——只有data class会自动生成公开的copy()方法,接口本身不会提供这个方法。
  • 官方文档错误标注了该接口存在copy()方法,但实际代码里既没有在接口定义中声明,也没有提供对应的扩展函数实现。

临时替代方案

如果需要复用或修改已有MenuItemColors的配置,直接通过MenuDefaults.itemColors()重新构建实例,传入需要调整的参数即可:

import androidx.compose.material3.MenuDefaults
import androidx.compose.material3.MenuItemColors
import androidx.compose.ui.graphics.Color

@Composable 
fun CopyColorsWorkaround() {
    val originalColors = MenuDefaults.itemColors()
    // 基于原有配置修改指定参数,比如替换选中态图标颜色
    val modifiedColors = MenuDefaults.itemColors(
        selectedTextColor = originalColors.selectedTextColor,
        selectedIconColor = Color.Red,
        // 根据需求添加其他需要保留或修改的参数
        disabledTextColor = originalColors.disabledTextColor
    )
}

版本相关提示

  • 1.2.0-beta02版本存在无法解决的IncompatibleClassChangeErrors,暂时不建议升级,等待后续稳定版本修复。
  • 后续版本官方大概率会修复文档错误,或调整MenuItemColors的实现使其支持copy()方法,建议关注Material3版本更新日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:48:15