2013-02-28 136 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); 
}