我有一个活动和一个布局应用程序。我正在实现ActionBarSherlock,但我的主题不适用于我的模拟器/早期设备。
我的theme.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActivityTheme" parent="Theme.Sherlock">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- other activity and action bar styles here -->
</style>
<!-- style for the action bar backgrounds -->
<style name="MyActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="android:backgroundSplit">#4200ff</item>
<item name="android:backgroundStacked">#4200ff</item>
<item name="android:background">#4200ff</item>
</style>
</resources>
这导致我的JellyBean设备上的ActionBar变蓝,但在我的2.2模拟器上它保持黑色。
这是我的manifest.xml中的一个部分:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/CustomActivityTheme">
答案 0 :(得分:1)
在Android 3.0及更高版本中,您可以将主题分配给项目名称android:actionBarStyle
。但是在2.3及更早版本中没有Action Bar,因此您不能使用名称为android:actionBarStyle
的项目。为了解决这个问题,ActionBarSherlock已经定义了它自己的项目名称actionBarStyle
而没有安装前缀
所以你的代码看起来应该是这样的
<!-- the theme applied to the application or activity -->
<style name="CustomActivityTheme" parent="Theme.Sherlock">
<item name="android:actionBarStyle">@style/MyActionBar</item>
<item name="actionBarStyle">@style/MyActionBar</item>
<!-- other activity and action bar styles here -->
</style>
<!-- style for the action bar backgrounds -->
<style name="MyActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
<item name="android:backgroundSplit">#4200ff</item>
<item name="android:backgroundStacked">#4200ff</item>
<item name="android:background">#4200ff</item>
</style>