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

如何在Jetpack Compose中使用Android 12推出的Material You新色彩

在Jetpack Compose中使用Material You动态个性化色彩的方法

动态色彩是Android 12及以上系统专属的特性,低于该版本的设备会默认使用应用预设的主题配色,具体实现步骤如下:

  • 首先确保项目引入了正确的依赖
    你需要使用Jetpack Compose Material 3库,版本不低于1.0.0,在模块级build.gradle文件中添加依赖即可:
    implementation "androidx.compose.material3:material3:$material3_version"
  • 第二步修改应用主题配置,开启动态色彩开关
    你可以直接参考如下示例配置主题:
    @Composable
    fun CustomAppTheme(
        darkTheme: Boolean = isSystemInDarkTheme(),
        // 动态色彩开关,Android 12以下系统会自动忽略该配置
        enableDynamicColor: Boolean = true,
        content: @Composable () -> Unit
    ) {
        val colorScheme = when {
            enableDynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
                val context = LocalContext.current
                if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
            }
            darkTheme -> AppDarkColorScheme
            else -> AppLightColorScheme
        }
    
        MaterialTheme(
            colorScheme = colorScheme,
            typography = AppTypography,
            content = content
        )
    }
    
    其中AppDarkColorScheme、AppLightColorScheme是你提前预设的、供低版本系统使用的固定配色方案。
  • 第三步直接使用主题配色开发即可
    所有Material 3组件默认会读取当前主题的配色属性,你也可以在自定义布局中通过MaterialTheme.colorScheme下的对应属性(比如primary、secondary、background等)调用动态色彩,无需额外适配。
  • 可选操作:如果你需要在某些页面禁用动态色彩,只需要在对应页面外层调用主题时将enableDynamicColor参数设为false,就会自动切回你预设的固定配色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:54:04