Android Compose:MaterialTheme.colorScheme.background无法在Card容器色生效
问题:Compose Material3 Card的containerColor未正确应用背景色
- 背景色可应用于包括边框在内的其他组件,但唯独Card的containerColor未显示预期的背景色
- 确切地说,背景色看似已被设置,但显示出的并非预期颜色
定义的背景色常量
import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text val md_theme_light_background = Color(0xFFFFFBFF) // 接近白色的背景色
测试代码1:使用primary颜色
Card( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.primary, contentColor = MaterialTheme.colorScheme.primary, disabledContainerColor = MaterialTheme.colorScheme.primary, disabledContentColor = MaterialTheme.colorScheme.primary ), elevation = CardDefaults.cardElevation(defaultElevation = 10.dp), border = BorderStroke(1.dp, MaterialTheme.colorScheme.primary) ) { Text(text = "text text text") }
截图说明:Card的容器和边框颜色一致,符合预期。
测试代码2:使用background颜色
Card( colors = CardDefaults.cardColors( containerColor = MaterialTheme.colorScheme.background, // 显示的不是预期颜色 contentColor = MaterialTheme.colorScheme.primary, disabledContainerColor = MaterialTheme.colorScheme.primary, disabledContentColor = MaterialTheme.colorScheme.primary ), elevation = CardDefaults.cardElevation(defaultElevation = 10.dp), border = BorderStroke(1.dp, MaterialTheme.colorScheme.background) // 显示的是预期颜色 ) { Text(text = "text text text") }
截图说明:Card边框显示了预期的接近白色,但容器颜色却不是预期的md_theme_light_background对应的颜色。
- 使用
Color.White或Color(0xFFFFFBFF)可以直接解决该问题,但希望明确问题的成因 - 疑问:该问题是否由
CardDefaults.cardColors导致?
内容的提问来源于stack exchange,提问作者정하림
相关产品推荐
相关产品推荐

