Compose BOM 2024.02.00版本导致物理设备动态主题失效
Compose BOM升级至2024.02.00后动态主题失效问题
将项目中的Compose BOM从2024.01.00版本升级至2024.02.00后,动态主题功能失效,应用自动切换为默认Google主题。已通过默认创建的示例项目复现该问题,具体修改内容如下:
MainActivity.kt 修改内容
package com.example.myapplication import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.eten.myapplication.ui.theme.MyApplicationTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() setContent { MyApplicationTheme { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> // 显示带有主题主色的方块 Box( modifier = Modifier .size(100.dp) .background(MaterialTheme.colorScheme.primary) .padding(innerPadding) ) } } } } }
注:ui.theme.Theme.kt未做任何修改
libs.versions.toml 修改内容
仅修改了composeBom版本号:
junitVersion = "1.1.5" espressoCore = "3.5.1" lifecycleRuntimeKtx = "2.7.0" activityCompose = "1.8.2" composeBom = "2024.02.00" [libraries] # ... 其他依赖项
不同版本效果对比
| Compose BOM版本 | 显示效果 |
|---|---|
| 2024.01.00 | ![]() |
| 2024.02.00 | ![]() |
内容的提问来源于stack exchange,提问作者eten
相关产品推荐
相关产品推荐



