我有一个新创建的小项目:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme(colorScheme = MaterialTheme.colorScheme.copy(surface = Color.Black)){
BottomAppBar(containerColor = Color.White) {
}
}
}
}
}
正如我所料,
BottomAppBar
具有白色背景,因为我明确指定了Color.White
:
当我指定
surface = Color.Blue
、surface = Color.Green
、surface = Color.Red
和任何其他颜色时,我会看到相同的结果。这是正确的,因为我明确指定了containerColor = Color.White
。但由于某种原因,当我写 surface = Color.Write
时,BottomAppBar
改变了颜色:
为什么?
BottomAppBar
的默认色调高度为 3dp。色调提升将容器的颜色稍微偏向原色,如Material 3 设计指南中所述。
如
BottomAppBar
的文档中所述,如果容器颜色设置为当前颜色方案的 surface
颜色(默认值),则仅应用色调提升。
由于您将白色指定为配色方案的
surface
颜色以及 BottomAppbar 的 containerColor
,因此满足上述条件。因此,应用色调提升并将您的白色变成略带蓝色(这是您的配色方案的原色)。