我在我的应用程序中使用支持库的最新ActionBarSherlock扩展。当我在模拟器4.2和设备上运行应用程序时,我遇到了视图和操作栏本身的奇怪外观。请查看模拟器的屏幕截图。我们可以看到蓝色线出现在ListView的每个行分隔符中,并在主页图标下划线。
小右箭头也是下划线,也没有正确缩放。 并且从透视角度来看,它在使用android 2.2的模拟器中显示良好
我使用主题的方式是:
ManifestFile.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>
我该如何解决这个问题?
答案 0 :(得分: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>
您可以找到可以覆盖的所有可用主题here。