如何在android中更改MenuItem背景

时间:2016-01-22 07:25:07

标签: android menuitem android-appcompat optionmenu

我想在android中更改single menuItem background,但它不起作用。我做了什么,在appcompat supported actionview中设置MenuItem并尝试设置background actionview

XML

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">
    <item android:id="@+id/action_my_balance"
    android:title="@string/my_balance"
    app:showAsAction="never"
    app:actionViewClass="android.widget.ImageButton"
        />
</menu>

源代码

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.my_menu, menu);
        ImageButton balanceMenu = (ImageButton) MenuItemCompat.getActionView(menu.findItem(R.id.action_my_balance));
        balanceMenu.setBackgroundColor(Color.RED);
        balanceMenu.invalidate();
        return true;
    }

但它根本不起作用。也可以在MenuItem上设置getView而不设置自定义actionview

1 个答案:

答案 0 :(得分:0)

AndroidManifest.xml

尝试此风格
<style name="ActionBarTheme" parent="ChooseYourParentStyle">
    <item name="android:popupMenuStyle">@style/MyStyle.PopupMenu_Style</item>
</style>

<style name="MyStyle.PopupMenu_Style" parent="ChooseYourParentStyle.ListPopupWindow">
    <item name="android:popupBackground">@drawable/CreateCustomDrawable</item>
</style>