1

我正在尝试自定义 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" >
...
4

2 回答 2

1

如果您查看 style 的属性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>

也许您正在寻找actionBarTabStyleactionBarTabTextStyle

<item name="actionBarTabStyle">@style/Widget.Sherlock.Light.ActionBar.TabView</item>
<item name="actionBarTabTextStyle">@style/Widget.Sherlock.Light.ActionBar.TabText</item>
于 2013-05-15T21:42:47.803 回答
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>
于 2013-05-15T07:11:13.387 回答