0

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

我的菜单资源如下所示:

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

4

1 回答 1

1

你的代码没有错。

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

可能是为了维护更好的UI。

所以,而不是

android:showAsAction="ifRoom"

利用

android:showAsAction="always"

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

于 2012-12-28T11:33:43.750 回答