android - 单击时如何更改操作栏中图标的背景颜色?

标签 android

此处提供的解决方案对我不起作用,因为它需要 api14 并且我想支持早期版本:

Change action background color when selected (ActionBarSherlock)

现在,当我用手指点击操作栏上的某个项目时,它会变成蓝色,我不希望这种情况发生。

信息: 我正在使用 SherlockActionBar。

这不起作用,因为它需要 api11:

        ImageView icon = (ImageView) findViewById(android.R.id.home);
        icon.setBackgroundColor(getResources().getColor(R.color.black));

这是我的 action_bar_items.xml

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

    <item
        android:id="@+id/abFeed"
        android:icon="@drawable/ic_action_content_paste"
        android:title="@string/abFeed"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abNotifications"
        android:icon="@drawable/ic_action_social_cc_bcc"
        android:title="@string/abNotifications"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abAddNewItem"
        android:icon="@drawable/ic_action_content_new"
        android:title="@string/abAddNewItem"
        android:showAsAction="always"/>
    <item
        android:id="@+id/abSearch"
        android:icon="@drawable/ic_action_action_search"
        android:title="@string/abSearch"
        android:showAsAction="always"/>
</menu>

编辑:这是帮助我解决问题的方法,感谢 Mario Lenci:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@FF000000" /> <!-- pressed -->
<item android:drawable="@android:color/transparent" /> <!-- default -->
</selector>

并在 styles:xml 中

<style name="Theme.SherlockCustom" parent="@style/Theme.Sherlock.Light">
    <item name="actionBarItemBackground">@drawable/action_bar_item_background</item>
    <item name="android:icon">@android:color/transparent</item>
    <item name="android:minWidth">0dp</item>
    <item name="android:padding">0dp</item>
</style>

最佳答案

你必须在你的应用程序/Activity 主主题中设置这个属性

<item name="android:actionBarItemBackground">@drawable/your_drawable</item>

对于操作栏 sherlok 你还必须设置

<item name="actionBarItemBackground">@drawable/your_drawable</item>

您可以找到有关 ActionBar 样式的良好文档 here

关于android - 单击时如何更改操作栏中图标的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19332921/

相关文章:

android - <include> 标签没有准确显示它的内容

android - 如何为单一风格签署发布和调试版本

android - OSMDroid - 放大而不改变瓷砖,这可能吗?

android - 如何构建Android系统镜像

android - 如何以编程方式调用android中的帐户设置

android - 在 Activity 中设置 savedInstanceState Bundle

android - 在它出现之前在 Android 上取消 toast

android - 为什么 Spinner.getChildAt 返回 null?

android - Camera2全屏预览和图像捕捉

Android:将参数从 AndroidManifest.xml 传递到 Activity