0

1 つのアクティビティと 1 つのレイアウト アプリケーションがあります。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">
4

1 に答える 1

1

Android バージョン 3.0 以降では、テーマを item name に割り当てることができますandroid:actionBarStyle。ただし、2.3 以前ではアクション バーがないため、 name で item を使用することはできませんandroid:actionBarStyle。この ActionBarSherlock を修正するためにactionBarStyle、android プレフィックスを付けずに独自のアイテム名を定義しました。
したがって、コードは次のようになります

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

于 2012-07-08T20:26:56.257 に答える