我正在尝试自定义ActionBarSherlock中的导航标签。如果我只是为导航选项卡设置背景,则选项卡的现有文本样式将丢失。文本缩小并在选项卡中左对齐。我的理解是我正在设置一个属性,它被合并到父主题。它似乎完全取代了父主题。我是否必须设置所有属性才能在导航标签中自定义一项内容?
以下是代码:
/res/values/themes.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="MyTheme" parent="Theme.Sherlock.Light">
<item name="android:dither">true</item>
<item name="android:actionBarTabStyle">@style/MyActionBarStyle</item>
<item name="actionBarTabStyle">@style/MyActionBarStyle</item>
</style>
<style name="MyActionBarStyle" parent="Widget.Sherlock.Light.ActionBar.TabBar">
<item name="android:background">@drawable/my_new_bg</item>
</style>
</resources>
的AndroidManifest.xml:
...
<application
android:name=".MyApplication"
android:hardwareAccelerated="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:description="@string/app_desc"
android:theme="@style/MyTheme" >
...
答案 0 :(得分:1)
如果查看样式Widget.Sherlock.Light.ActionBar.TabBar
的属性,您会注意到没有任何与继承相关的文本。
<style name="Widget.Sherlock.ActionBar.TabBar" parent="Widget">
<item name="android:divider">?attr/actionBarDivider</item>
<item name="android:showDividers">middle</item>
<item name="android:dividerPadding">12dip</item>
</style>
<style name="Widget.Sherlock.Light.ActionBar.TabBar" parent="Widget.Sherlock.ActionBar.TabBar">
</style>
也许您正在寻找actionBarTabStyle
和actionBarTabTextStyle
?
<item name="actionBarTabStyle">@style/Widget.Sherlock.Light.ActionBar.TabView</item>
<item name="actionBarTabTextStyle">@style/Widget.Sherlock.Light.ActionBar.TabText</item>
答案 1 :(得分:0)
试试这样:
<style name="MyActionBarStyle" parent="Widget.Sherlock.Light.ActionBar.TabBar">
<item name="android:background">@drawable/my_new_bg</item>
<item name="background">@drawable/my_new_bg</item>
</style>