操作栏显示应用程序图标和菜单项之间的大空间

时间:2012-12-22 03:09:55

标签: android android-actionbar menuitem

我的操作栏显示左侧的应用程序图标,然后有一个很大的空间,然后在右侧显示我的一些菜单项(其余的进入溢出)。问题是“大空间”足以容纳更多的图标。为什么不使用它?

我的菜单资源如下所示:

<?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)有关。也许我做错了?

1 个答案:

答案 0 :(得分:1)

您的代码没有错。

AtionBar默认只允许2-3个菜单项,即使有足够的空间容纳4-5。

可能是为了维持更好的用户界面。

所以,而不是

android:showAsAction="ifRoom"

使用

android:showAsAction="always"

让MenuItems始终出现在ActionBar上,而不是进入溢出菜单。