我正在使用动作栏夏洛克。我有一个带有透明像素的图标。但是当我运行我的应用程序时,似乎“某些东西”正在用主题的主背景替换这些透明像素,而不是操作栏背景。
主背景是否指定为@color 或@drawable(9 补丁)并不重要,但在后一种情况下(这是我真正想要的)还有一个额外的怪癖,即主背景的几个像素 9补丁出现在操作栏的右侧(!)手边缘。去搞清楚。
我不知道这里发生了什么。只是如果我从主样式中删除背景项目,操作栏看起来应该是它应该的(所以这似乎是问题所在)。
有没有其他人见过这样的行为?谢谢参观!
我将在下面粘贴我的 style.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="ViewPagerIndicator">
<attr name="vpiSubTabPageIndicatorStyle" format="reference"/>
</declare-styleable>
<style name="Theme.StandBy" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
<item name="vpiSubTabPageIndicatorStyle">@style/CustomSubTabPageIndicator</item>
<item name="android:actionBarStyle">@style/Theme.StandBy.App.ActionBar</item>
<item name="actionBarStyle">@style/Theme.StandBy.App.ActionBar</item>
<!-- ------------------------------------------ ->
<!-- I tried both of these, but can't get transparent pixels in my icon to work --->
<!-- when I use the 9 patch (frg_background) in stead of a plain color, there -->
<!-- are extra artefacts in that some of the 9 patch pixels end up on the righthand -->
<!-- side of the action bar -->
<!--<item name="android:background">@drawable/frg_background</item>
<item name="background">@drawable/frg_background</item>-->
<item name="android:background">@color/cream</item>
<item name="background">@color/cream</item>
<!-- ------------------------------------------ ->
</style>
<style name="Theme.StandBySubTab" parent="Theme.Sherlock.Light.DarkActionBar">
<item name="vpiTabPageIndicatorStyle">@style/CustomSubTabPageIndicator</item>
</style>
<style name="Theme.StandBy.App.ActionBar" parent="Widget.Sherlock.ActionBar">
<!--
Both `android:xyz` and `xyz` need to be set to support 4.x and 2.x devices.
-->
<item name="android:displayOptions">showHome</item>
<item name="displayOptions">showHome</item>
<item name="android:background">@drawable/bar</item>
<item name="background">@drawable/bar</item>
</style>
<!-- top tab style -->
<style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator">
<item name="android:background">@drawable/tab_background</item>
<item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item>
<item name="android:divider">@drawable/tab_divider</item>
<item name="android:showDividers">middle</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
</style>
<style name="CustomTabPageIndicator.Text">
<item name="android:textColor">@color/tab_text</item>
<item name="android:textSize">10sp</item>
<item name="android:textStyle">bold</item>
</style>
<!-- sub tab style -->
<style name="CustomSubTabPageIndicator" parent="Widget.TabPageIndicator">
<item name="android:background">@drawable/sub_background</item>
<item name="android:textAppearance">@style/CustomSubTabPageIndicator.Text</item>
<item name="android:paddingLeft">4dp</item>
<item name="android:paddingRight">4dp</item>
</style>
<style name="CustomSubTabPageIndicator.Text">
<item name="android:textColor">@color/sub_text</item>
<item name="android:textSize">10sp</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
编辑:因为如果我不指定background
并且android:background
在我的主要风格(Theme.StandBy)中问题消失了,我可能会问错误的问题。我放入这些项目的目的是为我的所有片段(选项卡的内容)指定默认背景。这行得通,但有我上面提到的不需要的副作用。我应该以另一种方式这样做吗?感谢您的任何建议!