ActionBarSherlock堆叠动作栏样式问题

时间:2013-10-27 21:27:05

标签: android android-actionbar actionbarsherlock android-styles theming

我无法弄清楚为什么我实施的堆叠ActionBar在最左边的标签页和屏幕边缘之间有间隙。

Left most tab has left divider issue

最右边的标签不是这种情况。

Right most tab does not have divider issue

我试图通过设置ActionBar的样式来删除分隔符。在玩了一点风格之后,似乎我能够覆盖TabView样式的属性,但不能覆盖TabBar ActionBarSherlock样式。

<style name="ActionBarTabBarStyle.Dark" parent="@style/Widget.Sherlock.ActionBar.TabBar">
    <item name="android:divider">@null</item>
    <item name="android:showDividers">none</item>
    <item name="android:dividerPadding">0dip</item>
</style>

然后我意识到我需要包含相同的无前缀属性。

ActionBarSherlock Theming

Due to limitations in Android's theming system any theme customizations must be declared 
in two attributes. The normal android-prefixed attributes apply the theme to the native 
action bar and the unprefixed attributes are for the custom implementation. Since both 
theming APIs are exactly the same you need only reference your customizations twice rather 
than having to implement them twice.

但我尝试包含相同的无前缀属性,但这对我没用。

我尝试包含相同的无前缀属性。

<style name="ActionBarTabBarStyle.Dark" parent="@style/Widget.Sherlock.ActionBar.TabBar">
    <item name="android:divider">@null</item>
    <item name="android:showDividers">none</item>
    <item name="android:dividerPadding">0dip</item>
    <item name="divider">@null</item>
    <item name="showDividers">none</item>
    <item name="dividerPadding">0dip</item>
</style>

但它会抛出错误

Error: No resource found that matches the given name: attr 'dividerPadding'.
Error: No resource found that matches the given name: attr 'showDividers'.

然后我删除了这两个属性并尝试再次运行它,但我仍然看到tabbar dividiers。

<style name="ActionBarTabBarStyle.Dark" parent="@style/Widget.Sherlock.ActionBar.TabBar">
    <item name="android:divider">@null</item>
    <item name="android:showDividers">none</item>
    <item name="android:dividerPadding">0dip</item>
    <item name="divider">@null</item>
</style>

在我的AndroidManifest.xml文件中,我包含了

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18"/>

关于可能出现什么问题的任何建议或想法?

更新

我也试过

<style name="Theme.Dark" parent="@style/Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarDivider">@null</item>
    <item name="android:actionBarDivider">@null</item>
</style>

但这并没有消除分隔线。是否有另一个属性会覆盖这些属性?

2 个答案:

答案 0 :(得分:1)

您必须更改属于主题的android:actionBarDivider属性,而不是操作栏样式android:divider。你可以删除这样的分隔符:

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionBarDivider">@null</item>
    <item name="android:actionBarDivider">@null</item>
</style>

答案 1 :(得分:0)

我会接受任何有回复涉及保留ActionBarSherlock的人,但是,我删除了这个库,现在我只是使用支持库而且不再有这个间距问题。我想ActionBarSherlock可能存在问题。但由于它不再受支持,我认为最好的解决方案就是使用支持库。