Color.kt中定义的自定义颜色无法在MaterialTheme.colors中访问
解决Compose自定义颜色无法通过MaterialTheme.colors访问的问题
检查包导入:确保Color.kt的包名与使用该颜色的Composable所在包一致,或者在使用处显式导入该扩展属性。例如Color.kt在
com.yourproject.ui.theme包下,就需要在使用代码里加import com.yourproject.ui.theme.bgray,或者导入整个主题包的扩展import com.yourproject.ui.theme.*。移除@Composable注解:Colors的扩展属性不需要添加@Composable注解——
MaterialTheme.colors本身是普通属性,给get()加@Composable会让扩展变成Composable属性,反而无法通过普通属性链访问。正确的扩展写法应为:val Colors.bgray: Color get() = Color(0xFF8ECE45)确认文件位置:建议把Color.kt放在主题目录下(通常是
ui/theme),和Theme.kt同目录,便于统一管理和导入。清理重建项目:IDE缓存可能导致未解析引用的假报错,执行
Build -> Clean Project,再Build -> Rebuild Project,最后同步Gradle(File -> Sync Project with Gradle Files)。
内容的提问来源于stack exchange,提问作者Yoko
相关产品推荐
相关产品推荐

