当按下HomeButton时如何更改高亮颜色

13

我使用Sherlock ActionBar。

1. 当我按下Home按钮时,我希望将其背景从蓝色改为红色。

2. 我想改变HomeAsUp图标(白色箭头),有什么建议吗?

enter image description here Home按钮

enter image description here 按下的Home按钮

这里是创建此ActionBar的代码:

extends SherlockFragmentActivity

public ActionBar actionBar;

this.actionBar = this.getSupportActionBar();
this.actionBar.setDisplayShowHomeEnabled(true);
this.actionBar.setHomeButtonEnabled(true);
this.actionBar.setDisplayHomeAsUpEnabled(true);
2个回答

19

您可以通过在您的主题中指定自己的actionBarItemBackground属性来更改此设置。

例如,

<style name="Theme.MyTheme" parent="Theme.Sherlock">
    <item name="android:actionBarItemBackground">@drawable/my_cool_drawable</item>
    <item name="actionBarItemBackground">@drawable/my_cool_drawable</item>
</style>

然后在您的活动清单中指定Theme.MyTheme


我们能否使用选择器来为主页图标和向上指示器(<符号)设置不同的按下和非按下可绘制对象。在清单文件中,我为活动提供了android:icon="@drawable/action_bar_home",其中action_bar_home是一个可绘制选择器,以及<item name="homeAsUpIndicator">@drawable/action_bar_home_as_up_indicator</item>,但是无论按下/非按下状态如何,只显示一个状态。 - Gaurav Vashisth
不,主页图标和“向上”图标都没有反映状态。 - Jake Wharton

2
通常在Android中,如果您想创建此行为,则需要创建一个新的“选择器”文件(位于“/drawable”文件夹中的XML文件)。
在该文件中,您需要选择按钮的不同状态,并为它们选择不同的图像。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/pressed_image" android:state_pressed="true"></item>
    <item android:drawable="@drawable/regular_image"></item>

</selector>

编辑:

当然,您需要在ActionBarSherlock库中执行此操作。


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