31

我正在实施ActionBarsherlock,我想更改操作栏背景。

我覆盖了属性,但蓝色分隔线消失了。如何使用带有蓝色分隔线的自定义背景?

<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">#ff3e3f3d</item>
    <item name="background">#ff3e3f3d</item>
</style>

4

4 回答 4

76

对于(像我一样)不喜欢玩 9-patch 图像的任何人,您可以使用 xml drawable 在操作栏底部获取分隔线:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Bottom Line -->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_line_color" />
        </shape>
    </item>

    <!-- Color of your action bar -->
    <item android:bottom="2dip">
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>

将此保存为 drawable/action_bar_background.xml,然后将其应用到您的主题中:

<style name="Widget.MyTheme.ActionBar" parent="Widget.Sherlock.ActionBar">
    <item name="android:background">@drawable/action_bar_background</item>
    <item name="background">@drawable/action_bar_background</item>
</style>
于 2012-06-13T01:04:03.630 回答
17

http://jgilfelt.github.io/android-actionbarstylegenerator/

该项目可用于生成您需要的 ActionBar 样式。

于 2012-06-20T12:43:24.237 回答
7

默认情况下,蓝色分隔线是背景。这是一个 9-patch 可绘制对象,可确保线条始终出现在操作栏的底部,无论其高度如何。

对于您的情况,我会.png从 Android 复制默认背景,然后对其进行修改,以便 9-patch 的可扩展部分成为您的目标背景颜色。这将用您想要的颜色填充操作栏,同时保持底部的蓝色边框。

于 2012-04-28T17:31:41.357 回答
3

只是 DanielGrech 提供的答案的更新。也可以在操作栏底部使用您自己的自定义图形。像这样:

    <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Bottom Line with custom graphic instead of a solid color-->
    <item android:drawable="@drawable/bar">
          <shape android:shape="rectangle"/>
    </item>

    <!-- Color of your action bar -->
    <item android:bottom="2dip">
        <shape android:shape="rectangle">
            <solid android:color="@color/action_bar_color" />
        </shape>
    </item>
</layer-list>
于 2013-11-29T13:47:07.243 回答