Android 可随深色模式切换的Material Design默认背景色资源是什么?
解决方案
直接给Bottom Sheet父布局的背景设置?attr/colorSurface即可,这是Material Design内置的表层容器专属颜色属性,会自动跟随系统深浅模式切换:
- 浅色模式下默认取值为白色
- 深色模式下默认取值为符合规范的深灰色
如果使用的是官方BottomSheetDialog/BottomSheetDialogFragment组件,其默认背景本身就使用了该属性值,你之前硬编码设置@color/white覆盖了默认逻辑,替换为上述属性即可恢复自动适配能力。
如果需要自定义不同模式下的背景色取值,也可以自己做双模式颜色配置:
- 在
res/values/colors.xml(浅色模式配置)中添加自定义颜色:
<color name="bottom_sheet_background">#FFFFFF</color>
- 在
res/values-night/colors.xml(深色模式配置)中添加同名自定义颜色:
<color name="bottom_sheet_background">#1C1B1F</color>
- 布局中直接引用
@color/bottom_sheet_background即可实现自定义规则的自动切换。
注意:如果?attr/colorSurface不生效,请确认你的App主题父类继承自Theme.MaterialComponents系列主题。
内容的提问来源于stack exchange,提问作者SmallGrammer
相关产品推荐
相关产品推荐

