4

次のスタイルをアクティビティに適用して上アイコンを変更したいのですが、機能しませんが、デフォルトの黒い「<」アイコンが表示されます。

誰かがここで欠けているものを見つけることができますか?

<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/actionBarStyle</item>
    <item name="android:actionBarStyle">@style/actionBarStyle</item>
</style>

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

    <item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
    <item name="homeAsUpIndicator">@drawable/up_indicator</item>
    <item name="android:displayOptions">homeAsUp|showHome</item>
    <item name="displayOptions">homeAsUp|showHome</item>

</style>
4

1 に答える 1

21

私が正しく覚えていれば、この問題を回避android:homeAsUpIndicatorするには、要素とhomeAsUpIndicator要素をメインテーマ宣言に移動する必要があります。言い換えれば、次のことを試してください。

<style name="AppTheme.ActionBar" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarStyle">@style/actionBarStyle</item>
    <item name="android:actionBarStyle">@style/actionBarStyle</item>
    <item name="android:homeAsUpIndicator">@drawable/up_indicator</item>
    <item name="homeAsUpIndicator">@drawable/up_indicator</item>
</style>

<style name="actionBarStyle" parent="@style/Widget.Sherlock.Light.ActionBar.Solid">
    <item name="android:background">@drawable/header_bar</item>
    <item name="background">@drawable/header_bar</item>
    <item name="android:displayOptions">homeAsUp|showHome</item>
    <item name="displayOptions">homeAsUp|showHome</item>
</style>

私も上に移動する必要があるかどうかはわかりませんdisplayOptionsが、上記がすぐに機能しない場合に備えて、それも試してみることをお勧めします。

ちなみに、スタイルに名前を付けてから、かなり紛らわしいAppTheme.ActionBarものから継承していることに気づきました。それがActionBar固有のスタイルである場合、親として(または他のウィジェットスタイルのいずれか)のTheme.Sherlock.Lightようなものを期待していました。Widget.Holo.Light.ActionBarそれがあなたのメインテーマなら、それに応じて名前を付けます。もちろんあなた次第です。


編集:ジェイクのコメントの後に回答を更新しました。

于 2012-10-31T23:27:47.167 に答える