我的操作栏显示左侧的应用程序图标,然后有一个很大的空间,然后在右侧显示我的一些菜单项(其余的进入溢出)。问题是“大空间”足以容纳更多的图标。为什么不使用它?
我的菜单资源如下所示:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_a"
android:icon="@drawable/a"
android:title="a"
android:orderInCategory="100"
android:showAsAction="ifRoom" >
<menu>
<item ... />
...
</menu>
</item>
...
<item
android:id="@+id/menu_n"
android:icon="@drawable/n"
android:title="n"
android:orderInCategory="100"
android:showAsAction="ifRoom" >
...
</item>
</menu>
在我的活动中,我有:
@Override
public void onCreate (Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView (R.layout.main_activity);
ActionBar actionBar = getActionBar();
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setHomeButtonEnabled (true);
...
}
和
@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.nav_menu, menu);
return true;
}
我怀疑它与我已禁用的应用程序标题(setDispalyShowTitleEnabled)有关。也许我做错了?
答案 0 :(得分:1)
您的代码没有错。
AtionBar默认只允许2-3个菜单项,即使有足够的空间容纳4-5。
可能是为了维持更好的用户界面。
所以,而不是
android:showAsAction="ifRoom"
使用
android:showAsAction="always"
让MenuItems始终出现在ActionBar上,而不是进入溢出菜单。