如何在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
相关产品推荐
相关产品推荐

