Actionbar homeAsUpIndicator背景

时间:2014-03-07 10:42:14

标签: colors background android-actionbar

我在styles.xml中使用此代码,但我的按钮背景不会更改。 我在哪里做错了?

<style name="MyCustomTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:homeAsUpIndicator">@drawable/actionbar_buttonbg</item>
    <item name="android:background">@drawable/actionbar_bg</item>
</style>

2 个答案:

答案 0 :(得分:1)

不幸的是,您无法通过styles.xml向homeAsUpIndicator添加背景。

但是你可以以编程方式完成:

public void setHomeAsUpBackgroundResource(int resource) {

    View abView = findViewById(R.id.action_bar);
    if (abView != null && abView instanceof ViewGroup) {
        ViewGroup vgAb = (ViewGroup) abView;
        if (vgAb.getChildCount() > 0) {
            View child = vgAb.getChildAt(0);
            if (child != null && child instanceof ImageButton)
                child.setBackgroundResource(resource);
        }
    }
}

很糟糕:它依赖于两个假设:此按钮是操作栏的第一个子项,是ImageButton的一个实例。

答案 1 :(得分:0)

     Hi  try use  in style properties actionBarItemBackground  good luck



<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:homeAsUpIndicator">@drawable/actionbar_buttonbg</item>
    <item name="android:background">@drawable/actionbar_bg</item>
    <item name="actionBarItemBackground">@color/backGroundHomeAsUp</item>
    <item name="android:actionBarItemBackground">@color/backGroundHomeAsUp</item>
</style>