5

我不明白为什么ActionBar我实现的堆叠在最左边的选项卡和屏幕边缘之间有间隙。

最左边的标签有左分隔线问题

最右边的选项卡不是这种情况。

最右边的标签没有分隔线问题

我试图通过对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 主题

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'.

所以然后我删除了这两个属性并尝试再次运行它,但我仍然看到标签栏分隔符。

<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>

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

4

2 回答 2

1

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

<style name="AppTheme" parent="Theme.Sherlock">
    <item name="actionBarDivider">@null</item>
    <item name="android:actionBarDivider">@null</item>
</style>
于 2013-11-01T06:15:51.777 回答
0

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

于 2013-12-10T01:43:52.430 回答