0

我在我的应用程序中使用了支持库的最新 ActionBarSherlock 扩展。当我在模拟器 4.2 和 android 4.2 的设备上运行应用程序时,我发现视图和操作栏本身的外观很奇怪。请看一下模拟器的屏幕截图。我们可以看到在 ListView 的每个行分隔符中都出现了蓝线,并在主页图标下划线。在此处输入图像描述

小右箭头也有下划线,也没有正确缩放。从长远来看,它在 android 2.2 的模拟器中显示良好

我使用主题的方式是:

清单文件.xml:

android:theme="@style/AppThemeWithoutTitle"

和styles.xml:

<style name="AppThemeWithoutTitle" parent="Widget.Sherlock.ActionBar">
  <item name="actionBarStyle">@style/MyActionBarWithoutTitle</item>
  <item name="android:actionBarStyle">@style/MyActionBarWithoutTitle</item>
</style>

<style name="MyActionBarWithoutTitle" parent="Widget.Sherlock.ActionBar">
  <item name="android:displayOptions">useLogo|showHome</item>
</style>

我该如何解决这个问题?

4

1 回答 1

0

Widget.Sherlock.ActionBar不是主题,是风格。第一个线索是它以Widget. Android 中主题的约定是以单词开头Theme或至少将单词Theme放在样式名称中。

您覆盖并尝试用作主题的样式是分配给actionBarStyle您要覆盖的样式的样式。

你需要有一个实际的主题作为你的父母,然后,只有这样你才能覆盖actionBarStyle并让它工作。

<style name="MyAppTheme" parent="Theme.Sherlock.Light.DarkActionBar">
    <item name="actionBarStyle">@style/MyActionBarTheme</item>
    <item name="android:actionBarStyle">@style/MyActionBarTheme</item>
</style>

<style name="MyActionBarTheme" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="background">@drawable/bg_striped</item>
    <item name="android:background">@drawable/bg_striped</item>

    <item name="backgroundSplit">@drawable/bg_striped_split</item>
    <item name="android:backgroundSplit">@drawable/bg_striped_split</item>
</style>

您可以在此处找到可以覆盖的所有可用主题。

于 2013-03-10T07:10:25.320 回答