当按下菜单项按钮时,ActionBar如何更改颜色?

3

如何在菜单项按钮按下时更改颜色。我使用SherlockActionBar,但是当它被按下时,它会更改为一种对我的设计不太好的颜色。我需要更改这个颜色。

更新:

问题在于当我设置放置在背景上的可绘制对象时,当按钮被按下时,我的可绘制对象附近的背景颜色会发生变化。我可以更改可绘制对象,但是背景仍然会更改其颜色为丑陋的颜色。

2个回答

8
您可以通过在主题中设置actionBarItemBackground属性来更改背景。这应该是一个状态列表可绘制对象,反映了按下和聚焦等状态。

主题中是否同时具有android:actionBarItemBackgroundactionBarItemBackground?根据ABS文档,两者都是必需的。 - Jake Wharton
实际上,现在好像可以了。我对主题进行了更改,可能会暂时破坏一些内容,其中就包括 TextView 颜色。 - Nathan Schwermann

1

当您单击菜单项时,这是如何将图标更改为新图标的方法。 好的,首先在onCreateOptionsMenu()中创建一个成员变量并获取对菜单项的引用。

然后,当您单击该项时,将该项设置为新的可绘制对象(使用您选择的颜色)。

MenuItem mMenuItem;

.....

menu.add("Map").setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM  |     MenuItem.SHOW_AS_ACTION_WITH_TEXT);
mMenuItem = menu.getItem(0); 


......
mMenuItem.setIcon(android.R.drawable.ic_menu_set_as);

希望这能有所帮助。

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