在ActionbarSherlock中更改homeAsUpIndicator图标不会影响ICS系统?

7
我试图更改ActionBar中的homeAsUpIndicator图标。我使用ActionBarSherlock以兼容旧版Android。当应用在旧版ICS和ICS设备上运行时,我为我的Activity设置了一个特定的主题,它显示不同的颜色。

这是我正在使用的样式:

<style name="Theme.PM" parent="@style/Theme.Sherlock.Light">

    <item name="android:homeAsUpIndicator">@drawable/back_sign</item> 
    <item name="homeAsUpIndicator">@drawable/back_sign</item>

</style>

像下面这张图片一样,对于ICS来说,主页指示器看起来是黑色的。对于旧版本的ICS,主页指示器则看起来是白色的。我在两个版本中都使用了同一张图片,但在ICS上看起来不同。如何解决这个问题?
1个回答

13
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CustomStyleUpAsHome" parent="Theme.Sherlock.Light">
        <item name="android:actionBarStyle">@style/CustomActionBarUpAsHome</item>
        <item name="android:homeAsUpIndicator">@drawable/arrow_home</item>
        <item name="homeAsUpIndicator">@drawable/arrow_home</item>
    </style>

    <style name="CustomActionBarUpAsHome" parent="CustomActionBar">
        <item name="android:displayOptions">homeAsUp|useLogo|showHome</item>
        <item name="displayOptions">homeAsUp|useLogo|showHome</item>
    </style>

</resources>

<activity
    android:name=".activity.Activity"
    android:screenOrientation="portrait"
    android:theme="@style/CustomStyleUpAsHome">
</activity>

这段代码很棒。尝试做类似的事情,也许它会对你有帮助。

祝好运!


嗨,如果我使用你的代码...它会在这个父类"CustomActionBar" 上出错。没有找到该父资源。你能指导一下吗?我想要更改返回按钮的图片。 - djk
你好。CustomActionBar是一种扩展默认操作栏主题的样式。例如,如果您正在使用兼容库,您可以使用<style name="CustomActionBar" parent="style/Widget.AppCompat.ActionBar">,或者您可以扩展Sherlock或Platform主题。祝你好运! - Ilya Demidov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接