【问题标题】:Change ActionBarSherlock background color更改 ActionBarSherlock 背景颜色
【发布时间】:2012-04-21 07:21:44
【问题描述】:

我正在尝试实现 ActionBarSherlock,因为有人告诉我它相对容易实现和自定义。我发现它很容易实现,但我正在尝试更改 ActionBar 的背景颜色,但事实证明这很困难。

根据该网站 (link),您似乎可以继承 ActionBarSherlock 的主题之一,然后覆盖您需要的属性。

这是我目前所拥有的:

<?xml version="1.0" encoding="UTF-8"?>
<resources>
    <style name="Theme.ActionBar" parent="Theme.Sherlock.ForceOverflow">
      <item name="android:background">#000000</item>
      <item name="background">#000000</item>
    </style>
</resources>

我注意到内置主题使用图像作为背景,但我祈祷我不必创建图像来更改背景颜色。

谢谢。

【问题讨论】:

    标签: android android-ui actionbarsherlock


    【解决方案1】:

    操作栏背景颜色是在操作栏的样式中定义的,而不是在主题本身中定义的。您需要执行以下操作:

    <style name="Theme.MyTheme" parent="Theme.Sherlock.ForceOverflow">
        <item name="actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
        <item name="android:actionBarStyle">@style/Widget.MyTheme.ActionBar</item>
    </style>
    
    <style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
        <item name="android:background">#ff000000</item>
        <item name="background">#ff000000</item>
    </style>
    

    小心使用 XML 中定义的颜色。 ColorDrawable 不尊重它在预Honeycomb 上的视图边界,因此如果您使用带有单独背景的标签导航堆叠标签视图,您将遇到问题。

    【讨论】:

    • 感谢您的回复。我没有使用标签或任何东西,只是一个带有一些操作的 ActionBar,所以可以使用颜色而不是图像吗?我在 8 个不同的应用程序上使用 ActionBarSherlock,但我不具备创建图像的专业知识。
    • 顺便说一句,您的代码可用于添加背景颜色。谢谢。
    • 使用颜色是安全的,只要您不将其用于堆叠背景属性。常规背景和分割背景都可以,但在 3.0 之前,使用堆叠颜色将无法正确显示。
    • 听起来不错。感谢您的回复和出色的产品。
    • @JakeWharton actionBarStyle 需要 API Level 11。如果目标小于 11,有没有办法做到这一点?实际上我刚刚意识到只有android:actionBarStyle 需要11,尽管这似乎仍然没有任何作用。
    【解决方案2】:

    我刚用过

    getSupportActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#00853c")));
    

    它改变了背景颜色。希望能帮助到你。

    【讨论】:

    • @alicanbatur 是的,但是如果您打算在 ActionBar 中拥有自己的样式并在整个应用程序中使用它,那么如果您将那行代码粘贴到每个类你想修改你的背景:)
    • 感谢您节省了很多精力。
    • 最简单的方法:)
    【解决方案3】:

    Jake Wharton 提到的代码是真实的。但是,如果您有 minSDK

    解决这个错误:

    在您的 res 文件夹中创建一个 values-v11 文件夹,并按照上述方法创建 XML 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 2013-08-08
      • 1970-01-01
      • 2017-08-11
      相关资源
      最近更新 更多