主题不适用于模拟器设备

时间:2012-07-08 20:21:52

标签: android android-layout android-actionbar actionbarsherlock android-theme

我有一个活动和一个布局应用程序。我正在实现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">

1 个答案:

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