【发布时间】:2020-09-19 19:19:27
【问题描述】:
我正在尝试将材质工具栏的背景颜色更改为表面颜色:
android:background="?attr/colorSurface"
按预期工作(为了简化它,我直接在视图中设置背景颜色,并没有为此创建自定义样式)。为了为明暗模式定义多种颜色,我创建了两个 colors.xml 文件。在光照模式下,应用的表面颜色看起来像预期的那样:
但是当我更改为暗模式时,两个工具栏看起来像这样(仍然都引用相同的颜色资源):
右侧工具栏的背景颜色正确,左侧没有。
然后我检查了我在暗模式下定义的每种颜色是否发生相同的情况,因此我将表面颜色更改为我的原色。在黑暗模式下,它看起来像这样:
所以在这种情况下,颜色看起来是一样的,但是当我使用我的表面颜色时,它不会。
我也试过把Widget.MaterialComponents.Toolbar.Surface工具栏改成Widget.MaterialComponents.Toolbar,结果还是一样。
【问题讨论】:
-
检查Elevation Overlays。您应该在
MaterialToolbar中使用Widget.MaterialComponents.Toolbar.PrimarySurface样式。 -
将
elevationOverlayEnabled设置为 false 解决了这个问题,奇怪的是,当海拔设置为 0 时仍然会应用此效果。谢谢您的帮助。
标签: android material-design toolbar