2013-02-28 137 views

回答

37

對於每個MenuItem,請執行下列操作:

myMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
-1

你有沒有嘗試過這樣的:

getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_IF_ROOM); 
getSupportActionBar().setDisplayOptions(MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
+4

我認爲應該是'(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT)',旗式。 – Geobits 2013-02-28 14:50:18

+4

根據[文檔](http://developer.android.com/reference/android/app/ActionBar.html#setDisplayOptions(int)),我不認爲這應該工作,因爲'setDisplayOptions()'需要ActionBar的'DISPLAY_'常量雖然,一些常量[* do * overlap](http://developer.android.com/reference/android/view/MenuItem.html#SHOW_AS_ACTION_ALWAYS)。 – 2013-02-28 14:52:31

+0

@Geobits請提交您的答案,我會接受它。 – 2013-02-28 14:52:59

13

如果你想在運行時設置,那麼你需要在MenuItem這樣做這些屬性,而不是ActionBar

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 
    MenuItem item = menu.findItem(R.id.your_menu_item); 
    item.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); 
}