android - 菜单项保持白色,甚至禁用

时间:2017-10-06 19:03:47

标签: java android android-actionbar

显示工具栏中的“保存”项仅在设计模式下发生,但从不在运行时发生。

enter image description here

我正在使用此代码:

 @Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if(count > 0) {
        menuItemSave.setEnabled(true);

    } else {
        menuItemSave.setEnabled(false);
    }

    return true;
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);

    menuItemSave = menu.findItem(R.id.save);

    return true;
}

它启用/禁用但在禁用时它确实没有变成灰色。

2 个答案:

答案 0 :(得分:3)

启用或禁用按钮时,可以使用自定义颜色更改颜色。 [根据您的要求改变颜色] 颜色/ custom_button_color.xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#FF0000" android:state_enabled="false"  />
    <item android:color="#CCCCCC"/>
</selector>

在menu.xml文件中设置为所需的按钮项目,如

android:textColor="@color/custom_button_color"

答案 1 :(得分:0)

根据Android docs onPrepareOptionsMenu在菜单打开之前调用。但是如果菜单始终打开,则不会调用它。

所以,

  

在Android 3.0及更高版本中,如果要更新始终打开的菜单,则必须调用invalidateOptionsMenu()。然后系统将调用onPrepareOptionsMenu(),以便您可以更新菜单项。