在ActionBar中自定义MenuItem的背景

时间:2012-10-03 11:01:45

标签: android android-actionbar menuitem

我需要更改ActionBar中menuItem的颜色(当用户在我的操作栏中按menuItem时显示的列表)。

我必须更改android:style/Widget.Holo.Light.ActionBar的哪个元素?

我必须创建style以更改android:style/Widget.Holo.Light.ActionBar

1 个答案:

答案 0 :(得分:1)

我不确定您是否可以为特定的menuItem执行此操作,但您可以查看有关样式化ActionBar的更完整的博文:Part 1Part 2

编辑:在看了另一篇文章之后,我认为你想做的事情是不可能的。最好的方法是创建一个具有适当颜色的menuitem的图标,并在需要时进行更改。

menu.xml:

<item android:id="@+id/my_menu_item"
android:icon="@drawable/my_menu_item_icon_color1"
android:title="@string/my_menu_item"
android:showAsAction="ifRoom" />
您活动中的

/**
 * Create default menu and keep it in a private var
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main_menu, menu);
    mMenuActionBar = menu;
    return true;
}


/**
 * Method changing your item to second icon
 */
private void updateActionBar() {
    if (mMenuActionBar != null) {
        MenuItem menuItem = mMenuActionBar.findItem(R.id.my_menu_item);
        if (menuItem != null) {
            menuItem.setIcon(@drawable/my_menu_item_icon_color2);
            invalidateOptionsMenu();
        }
    }
}