我在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>
答案 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>