ActionBar Sherlock造型问题

时间:2012-08-03 11:14:30

标签: android android-actionbar actionbarsherlock

我正在开发一个关于android的新应用程序。我在我的应用程序中实现了actionbarsherlock。 这是我的屏幕截图。image1

我想改变屏幕的背景,所以我创造了一种风格。

<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">#ffff0000</item>
   </style>

使用我的主题后,缺少蓝色边框。 这是我使用主题后获得的屏幕。enter image description here

请帮我找个解决方案的朋友。

4 个答案:

答案 0 :(得分:2)

这是因为蓝色边框是操作栏背景的一部分。当你把它改成红色时就消失了。

您必须使用底部边框创建自己的drawable并覆盖操作栏的背景。

答案 1 :(得分:1)

我以前没有Sherlock的经验,但我觉得你的风格有背景属性:

<item name="android:background">#ff000000</item>

所以,我相信你可以在底部制作一个红色和边框的自定义背景,例如它是shape或9补丁图片。

然后你可以这样设置:

<item name="android:background">@drawable/my_cool_background</item>

答案 2 :(得分:1)

蓝色边框线是背景可绘制的一部分。参见文件res / drawable-hdpi / abs__cab_background_top_holo_dark.9.png。 因此,如果您希望操作栏中的底线边框具有自定义背景,则需要使用该边框创建9-patch drawable。

答案 3 :(得分:1)

在文件布局/ abs__action_bar_tab_bar_view.xml中:

<?xml version="1.0" encoding="utf-8"?>
<com.actionbarsherlock.internal.widget.IcsLinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
   android:background="@drawable/bq_up_bar"
/>
<!--   style="?attr/actionBarTabBarStyle"  -->