0

我正在android上开发一个新应用程序。我已经在我的应用程序中实现了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">#ffff0000</item>
   </style>

使用我的主题后,蓝色边框不见了。这是我使用主题后得到的屏幕。在此处输入图像描述.

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

4

4 回答 4

2

这是因为蓝色边框是操作栏背景的一部分。当您将其更改为红色时,它就消失了。

您必须创建自己的带有底部边框的可绘制对象并覆盖操作栏的背景。

于 2012-08-03T11:19:54.897 回答
1

我以前没有任何使用 Sherlock 的经验,但我在你的风格中看到你有一个背景属性:

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

所以,我相信你可以用红色和底部的边框制作一个自定义背景,让它成为一个形状,或者一个 9 补丁图像。

然后你可以这样设置:

<item name="android:background">@drawable/my_cool_background</item>
于 2012-08-03T11:19:30.493 回答
1

该蓝线边框是背景可绘制对象的一部分。请参阅文件 res/drawable-hdpi/abs__cab_background_top_holo_dark.9.png。因此,如果您希望在您的操作栏中有一个带有自定义背景的底线边框,您需要创建一个带有该边框的 9-patch 可绘制对象。

于 2012-08-03T11:27:16.730 回答
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"  -->
于 2012-10-11T06:47:27.277 回答