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

コードに問題はありません。

デフォルトでは、AtionBar は、4 ~ 5 個を収容する十分なスペースがある場合でも、2 ~ 3 個のメニュー項目しか許可しません。

より良いUIを維持するためかもしれません。

だから、代わりに

android:showAsAction="ifRoom"

使用する

android:showAsAction="always"

オーバーフロー メニューに移動する代わりに、常に ActionBar に MenuItems を表示します。

于 2012-12-28T11:33:43.750 に答える