2014-03-07 63 views
1

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

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

回答

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的一个实例。

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>