为什么将表面颜色设置为白色会使我的BottomAppBar不是白色?

问题描述 投票:0回答:1

我有一个新创建的小项目:

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
改变了颜色:

为什么?

android android-jetpack-compose
1个回答
0
投票

BottomAppBar
的默认色调高度为 3dp。色调提升将容器的颜色稍微偏向原色,如Material 3 设计指南中所述。

BottomAppBar
的文档中所述,如果容器颜色设置为当前颜色方案的 surface 颜色(默认值),则
应用色调提升。

由于您将白色指定为配色方案的

surface
颜色以及 BottomAppbar 的
containerColor
,因此满足上述条件。因此,应用色调提升并将您的白色变成略带蓝色(这是您的配色方案的原色)。

© www.soinside.com 2019 - 2024. All rights reserved.