禁用ActionBar菜单项但仍可单击

时间:2013-06-26 02:58:31

标签: android actionbarsherlock android-actionbar

我想禁用ActionBar Menu Item,但可以点击它。我有什么方法可以做到这一点吗?

现在,如果我将setEnabled设置为false这是正常的行为,但它不可点击,那就太白了。

1 个答案:

答案 0 :(得分:0)

这并不能真正回答这个问题,因为ActionBar Menu Item无法同时禁用和点击。我最终做的是启用Menu Item并将文本颜色设置为灰色,使其看起来像伪禁用。如果条件满足,它将变为默认颜色。

信用:Nicolai Buch Andersen

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    MenuInflater inflater = getSupportMenuInflater();
    inflater.inflate(R.menu.menu, menu);

    SpannableStringBuilder text = new SpannableStringBuilder();
    text.append(getString(R.string.menu_title));

    if (someCondition){
         text.setSpan(new ForegroundColorSpan(Color.BLACK), 
                 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
    else {
        text.setSpan(new ForegroundColorSpan(Color.LTGRAY), 
                0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }


    MenuItem item = menu.findItem(R.id.some_menu_id);
    item.setTitle(text);

    return true;
}