2012-08-03 69 views
0

我正在研究android.I上的一个新应用程序,在我的应用程序中实现了actionbarsherlock。 这是我的屏幕截图。 image1ActionBar Sherlock造型问题

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

<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

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

回答

2

发生这种情况,因为蓝色边框是动作条背景的一部分。当你把它改成红色时,它消失了。

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

1

我没有与夏洛克任何以往的经验,但我在你的风格看你有一个背景属性:

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

所以,我相信你可以用红色和边界的自定义背景在底部,例如让它成为shape或9补丁图像。

然后你可以将其设置是这样的:

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

蓝线边框是背景可绘制的一部分。请参阅文件res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png。 因此,如果您想在自定义背景的操作栏中使用底线边框,则需要使用该边框创建9贴片可绘制。

+0

感谢u为answer.I希望我能接受两个答案:)。 – sarath 2012-08-03 11:35:23

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" -->