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

Android Action Bar背景颜色

尚嘉勋
2023-03-14

我已经看过android文档和其他示例,但仍然无法让我的动作栏风格发挥作用。我已经在android清单中将我的主题设置为“AppTheme”,但背景颜色不会改变。

这是我的风格。xml:

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="android:actionBarStyle">@style/ActionBarTheme</item>
</style>

<style name="ActionBarTheme" parent="Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">#9D0D0D</item>
    <item name="background">#9D0D0D</item>
</style>

我发现我需要定义两次样式,一次使用项目名“android:background”,另一次使用项目名“background”。后者是为了支持库兼容性。我在运行应用程序时遇到此错误:

Error:(11, 41) Color types not allowed (at 'background' with value '#9D0D0D').

为什么android不允许项目名称为“background”的颜色,但允许项目名称为“android:background”的颜色?还有什么可能是错误的吗?

共有3个答案

颜杰
2023-03-14

Astrount的回答是:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimaryDark">@color/primaryDarkColorActionBar</item>
        <item name="colorPrimary">@color/primaryColorActionBar</item>
</style>

在Gradle配置依赖项中:

dependencies {
    ...
    compile 'com.android.support:design:22.2.0'
}

在您放置工具栏的布局中:

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>

</android.support.design.widget.AppBarLayout>

这会自动样式化您的工具栏。确保您使用Android SDK Manager更新到最新的支持库SDK。

柯冯浩
2023-03-14

解决方案一:你可以从Java。只需在setContentView之后使用这2行。

ActionBar bar = getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#db1012")));

解决方案2:您可以使用工具栏。将此添加到您的xml。

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/color_primary"
    app:titleTextAppearance="@style/Toolbar.TitleText"
    android:layout_alignParentTop="true">
</android.support.v7.widget.Toolbar>

这个来自java

  /**
 * Set toolbar into actionbar.
 */
protected void setupToolbar() {
    if (toolbar == null) {

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitle(R.string.back);
        toolbar.setTitleTextColor(Color.WHITE);
        toolbar.setBackgroundColor(Color.RED);
    }
}
薄涵衍
2023-03-14

请尝试以下代码:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimaryDark">@color/primaryDarkColorActionBar</item>
        <item name="colorPrimary">@color/primaryColorActionBar</item>
</style>

此外,ActionBarActivity在最新的appcompat更新(即22.1)中被弃用。1.因此,最好改用AppCompativeActivity(如果您还没有使用它的话)。

 类似资料:
  • 在超文本标记语言中,我什么时候使用颜色,背景颜色和背景标签有什么区别? 有什么区别?

  • background(int $color, int $pattern = self::PATTERN_SOLID): self int $color $format = new \Vtiful\Kernel\Format($fileHandle); ​ $backgroundStyle = $format->background( \Vtiful\Kernel\Format::COLO

  • 我正在制作一个基于文本的游戏,用户输入文本来解决游戏。我决定使用JavaSwing来显示文本,我希望文本窗格的背景为黑色。我已经尝试了所有我发现的东西(注释掉了),但是没有一个看起来有效。 这里没有显示导入的图片,但是当我使用任何被注释掉的部分运行游戏时,游戏中没有错误。

  • 背景颜色是背景应用中最基础的属性,使用 background-color属性,几乎可以为任何元素定义背景颜色,该属性不能被继承,其默认值是 transparent,即透明背景。也就是说,如果一个元素没有显式定义背景颜色,那么其背景是透明的,就可以透过该元素看到其祖先元素的背景。 background-color属性接受任意合法的CSS颜色值,如预定义的颜色名、十六进制数值、RGB值、RGB百分比、

  • 问题内容: 假设我要在CSS中渲染箭头,箭头应具有头部,尾部和灵活的宽度,以便可以包含文本。我当然可以创建多个div来获得所需的内容,但是如何在CSS3中完成呢? 我可以使用多个背景图片: 的HTML: 这给了我一个带有箭头和尾巴的透明中间部分。似乎不可能在中间部分指定颜色。 仅使用一张背景图像,您可以执行以下操作: 我知道这在很多方面都是可行的,但是背景颜色属性是否真的从速记定义中丢失了? 问题

  • 通过RGB值设置背景的颜色。 默认的颜色是 0x000000: // 颜色的参数可以是字符串 "#530000" 或者是十六进制数值 0x530000 controller.setBackgroundColor("#530000); //controller.setBackgroundColor(0x530000);