2012-09-20 153 views
1

我使用的是在\ menu文件夾下的xml中定義的android選項菜單。 菜單中有5個項目,它們在佈局中顯示爲兩行 - 最上面一行包含2個項目,最後一行包含其他3個項目。更改android選項菜單佈局

有沒有一種方法來配置菜單,使頂行將包含3項,底線將包含其他2?

謝謝!

回答

0

我認爲如果你把菜單項放在一個組中,它會盡量保持它們在一起。在您的活動中創建菜單時,如果不使用XML,控制菜單項的順序會更好。在你的活動,你可以在組像這樣得到的菜單項:

@Override 
     public boolean onCreateOptionsMenu(Menu menu) 
     { 
     int group1Id = 1; 

     int Id1 = Menu.FIRST; 
     int Id2 = Menu.FIRST +1; 
     int Id3 = Menu.FIRST +2; 

      super.onCreateOptionsMenu(menu); 

       menu.add(group1Id, Id1, 1, "Option 1"); 
       menu.add(group1Id, Id2, 2, "Option 2"); 
       menu.add(group1Id, Id3, 3, "Option 3"); 
         return true; 
      }  

     @Override 
     public boolean onOptionsItemSelected(MenuItem item) { 
      super.onOptionsItemSelected(item); 

      switch (item.getItemId()) { 
      case 1:  //for option 1 


       return true; 
      case 2:  //for option 2 

       return true; 
      case 3:  //for option 3 


       return true;  
        default: 
       return false; 
      } 

參數的groupId組標識符,這個項目應該成爲其中的一部分。

itemId唯一商品ID。如果您不需要唯一的ID,請使用NONE。

order該物品的訂單。如果您不關心訂單,請使用NONE。

標題要顯示的項目文本。

返回: 新添加的菜單項。

+0

我我試圖在菜單xml中定義一個組,並且項目顯示沒有改變。 我想知道是否在代碼上創建它會改變它。 – Shlomi

0

我們可以使用不同的佈局選項菜單 例如: -

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@+id/menuRefresh" 
    android:icon="@drawable/ic_menu_refresh" 
    android:title="Refresh" 
     android:showAsAction = "always"/> 
<item android:id="@+id/menuAbout" 
    android:icon="@drawable/ic_menu_info_details" 
    android:title="About" 
    android:showAsAction = "always"/> 
</menu> 

您可以使用 「從不」 「withtext」 「ifRoom」 「總是」, 「collapseActionView」 or you can read out full details here