2012-10-08 139 views
2

我想在我的應用程序中實現ActionBarSherlock,我需要在我的應用程序頂部顯示菜單,集成在操作欄中。問題是它不能正常工作。我使用這樣的:Android ActionbarSherlock顯示菜單按鈕頂部

public boolean onCreateOptionsMenu(Menu menu) { 
    menu.add("Refresh") 
     .setIcon(R.drawable.ic_action_refresh) 
     .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

    menu.add("Settings") 
     .setIcon(R.drawable.ic_action_settings) 
     .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    return true; 
} 

所以我想實現的東西是在我的操作欄右側的刷新圖標和菜單圖標顯示,點擊時應該打開默認的菜單。我在ActionbarSherlock演示中檢查了ForcedOverflowItem示例,但它不能正常工作。我需要看起來與Android 2. +和Android 4. +一樣。

任何建議/幫助/建議我該如何得到這個工作?

+0

你不能在ICS +上顯示溢出菜單,ABS庫更新到v4.2.0。刪除ForceOverflow – JafarKhQ

+0

所以你想要一個「溢出」菜單? –

+0

是一個過流菜單 – hardartcore

回答

5

根據我在ActionbarSherlock的文檔中讀到的內容,您不能強制菜單圖標出現在Android 4. +中。當設備有菜單按鈕時,菜單圖標不會出現。我猜那個編寫ActionbarSherlock的人知道這個主題很好;-)

3

請閱讀dorjeduck的回答。如果您想要在所有設備上擁有相同的體驗,則必須爲其子菜單添加自定義菜單。這裏的代碼是:

SubMenu sub = menu.addSubMenu("More"); 
sub.setIcon(R.drawable.abs__ic_menu_moreoverflow_holo_dark); 
sub.add(0, MENU_SETTINGS, 0, "Settings"); 
+0

是的,但它不能與'tabactivity'一起工作,因爲我的應用程序使用的是標籤,而不是在android 4.0 api中 - 片段。 – hardartcore

+0

我不明白,在哪個連接是你的問題和tabactivity?但您可以將標籤更改爲操作欄的標籤 – hsafarya

6

你可以做一個xml文件這行。 我在其他一些帖子中看到了這個,但我現在無法跟蹤它。

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

    <item 
     android:id="@+id/more" 
     android:showAsAction="always" 
     android:icon="@drawable/abs__ic_menu_moreoverflow_holo_dark"> 
     <menu> 
      <item 
       android:id="@+id/remove" 
       android:showAsAction="withText|never" 
       android:title="@string/remove"> 
      </item> 
     </menu> 
    </item> 

</menu> 

然後就像正常的菜單膨脹它。

public boolean onCreateOptionsMenu(Menu menu) { 
     getSupportMenuInflater().inflate(R.menu.overlow, menu); 
     return true; 
    } 
+2

爲什麼選擇了倒票?我正在使用這種方法。如果出現問題,請回復,以便我能證明或學習新內容並更改我的代碼。 – Laranjeiro

+0

這對我來說也很完美。 – suomi35