当前位置: 首页 > 知识库问答 >
问题:

使用AppCompat更改操作栏的背景颜色

常英纵
2023-03-14

该项目的最小sdk为9,最大sdk为19。

我已在res/values文件夹中创建了一个xml文件

red_actionbar.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="background">@color/red</item>
    </style>
</resources>
<resources>
    <color name="red">#FF0000</color>
</resources>
<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/CustomActionBarTheme" >
<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar ">

它确实改变了我应用程序的主题,所以问题出在风格上但我不知道如何解决。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
        <item name="android:actionBarStyle" tools:ignore="NewApi">@style/MyActionBar</item>
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>
    <style name="MyActionBar"
           parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background"  tools:ignore="NewApi">@color/red</item>
        <item name="background">@color/red</item>
    </style>
</resources>

共有1个答案

孔志强
2023-03-14
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background"  tools:ignore="NewApi">@color/red</item>
    <item name="background">@color/red</item>
</style>

<style name="CustomActionBarTheme" parent="@style/Theme.AppCompat.Light">
    <item name="android:actionBarStyle"   tools:ignore="NewApi">@style/MyActionBar</item>
    <item name="actionBarStyle">@style/MyActionBar</item>

</style>

您同时需要android:backgroundbackground项。前者适用于本机支持ActionBar的较新版本的android。后者适用于较老的android版本。

编辑

而不是 使用

<resources xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android">
<item name="colorPrimary">@color/my_awesome_red</item> 
<item name="colorPrimaryDark">@color/my_awesome_darker_red</item>
 类似资料:
  • 博览会允许更改StatusBar的颜色和其他方面(在屏幕顶部)。 我没有看到任何关于修改导航栏(屏幕底部)背景颜色以匹配任何地方的内容。无需分离即可实现此功能吗?:

  • 在我的一个活动中,我使用更改了工具栏的颜色。但在使用的5.0设备上,颜色是活动主题中的的颜色,所以我有两种非常不同的颜色,看起来不太好。 我意识到在5.0中可以使用,但没有这个功能。 所以我的问题是在5.0中,如何用更改状态栏颜色?

  • 我不知道如何在Android上更改操作栏项目“onPressed”的颜色。我说的不是动作条的背景色,而是蓝色覆盖状态。我怎样才能改变它的颜色或者至少去掉它?例如,带有homeAsUpIndicator的应用程序图标。 我试图更改操作栏样式和菜单项样式,但没有任何效果。 谢谢 编辑此处是我迄今为止的实现: 我的风格xml: 然后我有一个动作巴罗哥的可抽绳: 操作栏项目的“我的菜单xml”: 最后,项

  • 我当前的应用程序运行在iOS 4.2、5和6上。 导航栏为橙色,状态栏为黑色背景色。然而,当我在iOS 7上运行相同的应用程序时,我观察到状态栏看起来是透明的,与导航栏的背景颜色相同。 因此,我无法区分状态栏和导航栏。如何使状态栏与iOS 5和iOS 6中的状态栏相同,即黑色背景色和白色文本色?我如何通过编程实现这一点? 我在谷歌上搜索了一下,发现一个建议,我必须添加一个黑色背景,大约20像素高的

  • 问题内容: 有谁知道使用JavaScript交换网页背景色的简单方法? 问题答案: 修改JavaScript属性。 例如: 注意:这确实取决于页面的组合方式,例如,如果您使用的背景颜色不同的DIV容器,则需要修改其背景颜色而不是文档主体。

  • 问题内容: 我希望能够根据当前路径更改背景色。 我尝试通过每当路径更改时检查$ location.path()来执行此操作,然后使用伪指令更改背景色,但这似乎很简单(并且不起作用)。 什么是实现这一目标的更分离的方法? 如果有人想看,这是我写的代码。 问题答案: 为了消除样式,数据,内容等方面的动态变化,通常很实际的做法是创建另一个包含接口(自定义提供程序)的角度模块,该接口可让您在配置级别之前和