更改操作栏上方系统设置菜单的背景颜色

Posted

技术标签:

【中文标题】更改操作栏上方系统设置菜单的背景颜色【英文标题】:Change background color of the system settings menu above the actionbar 【发布时间】:2016-01-03 13:11:22 【问题描述】:

我现在尝试了几个小时来更改位于操作栏顶部的系统设置菜单的背景颜色。我搜索了堆栈溢出和谷歌,但我只找到了关于操作栏本身的答案。请参阅图片以获得更多说明。就像 Gmail 应用程序一样,我想将颜色更改为深红色。有人可以发布代码如何实现这一目标吗?另外图片中蓝色突出显示部分的实际名称是什么?

谢谢!

【问题讨论】:

您的主题是否包含关注项<item name="colorPrimaryDark">...</item>colorPrimaryDark 应用于您的状态栏 仅支持 API +21 【参考方案1】:

该区域称为状态栏。使用材质主题,您可以将此行添加到样式 xml 以更改颜色。

<item name="android:colorPrimaryDark">@color/primary_dark</item>

文档:https://developer.android.com/training/material/theme.html

为了保持兼容性,你应该这样定义你的主题

<!-- extend one of the Theme.AppCompat themes -->
<style name="Theme.MyTheme" parent="Theme.AppCompat.Light">
    <!-- customize the color palette -->
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/accent</item>
</style>

然后在你的 build.gradle 文件中添加这个依赖

dependencies 
    compile 'com.android.support:appcompat-v7:21.0.+'

文档:https://developer.android.com/training/material/compatibility.html

注意:虽然这将允许旧设备使用 Material 主题,但它不能修改状态栏颜色。看到这个blog post

人们提出了一些解决方法here

【讨论】:

这是唯一可用的解决方案吗?我的应用面向 API 级别 15+ 的设备。我看到这个答案只适用于 API 级别 21+ 的设备。 @TheHagueCoder 尝试使用colorPrimaryDark 而不是android:colorPrimaryDarkcolorPrimaryDark 绝对可以在低于 21 的 API 上使用 只是添加到最后一条语句:当然,您必须将 appcompat 作为依赖项包含在内。【参考方案2】:

要支持 Pre Lollipop 设备,您需要添加 Appcombat v7 21 的编译依赖项,如下所示:

dependencies 
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'

【讨论】:

以上是关于更改操作栏上方系统设置菜单的背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

华为状态栏怎么变黑色

如何更改cmd的背景

如何修改Eclipse代码区背景色

win10状态栏右键菜单变成黑色怎么破

如何更改操作栏中下拉菜单的背景颜色

Mac设置顶部菜单栏技巧?