2013-06-26 19 views
-1

我想禁用ActionBar Menu Item,但使其可點擊。有什麼辦法可以做到這一點?禁用ActionBar菜單項,但仍可點擊

現在,如果我將setEnabled設置爲false這是正常行爲,但它不可點擊,這只是灰色。

+0

你是什麼意思變灰而不是'clickable'。如果你調用'setEnabled(false)',它將會變灰。 – Varun

+0

是的,我希望它變灰,但我也希望它是可點擊的。 – input

回答

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; 
}