2012-06-05 32 views
0

我正在ICS上創建一個操作欄。由於間距只顯示圖標。 但我也想,如果手機的菜單按鈕按下文本提供操作欄的上下文菜單一樣顯示操作欄也用於菜單按鈕?

我該如何做到這一點?

大氣壓我有3個圖標。其中2個顯示在操作欄的頂部。 如果我按菜單電話按鈕,第三顯示爲contextmenu!但我想要全部3個。

class MyActivity extends SherlockFragmentActivity { 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getSupportMenuInflater(); 

     /* IMPLEMENTATION HERE */ 
    } 
} 
+0

你的代碼不會編譯... return語句在哪裏? –

+0

''// inflace etc''應該表明還有更多的東西要來,當然還有一個return語句。問題不在於代碼,而在於如何實現操作欄和上下文菜單按鈕可以顯示所有菜單項? – membersound

+1

你的意思是**溢出**菜單嗎?上下文菜單提供了影響UI中特定項目或上下文框架的操作。它們被用於與操作欄不同的目的。 –

回答

1

從文檔上Menus

如果菜單項不顯示爲一個操作項,則系統將它置於溢出菜單。

因此,示出在兩個操作欄溢出菜單相同的操作項是不可能的。你可以是這樣的:

  1. 檢查(在運行時)的菜單項適合在操作欄,哪些沒有。

  2. 對於動作欄中顯示的每個菜單項,動態創建一個新的相同菜單項,確保調用newMenuItem.setShowAsAction(SHOW_AS_ACTION_NEVER)以確保它顯示在溢出菜單(帶文本)中。

在我看來,這違背了Android的菜單設計標準,我不會建議這樣做。它可能看起來像是一個更好的設計選擇,但用戶期望應用在整個Android平臺上保持一致。以奇怪的方式操作菜單可能會導致混淆,並可能對用戶體驗造成負面影響。

+0

好的,謝謝你。我想我會遵循你的建議,並保持它的方式。 – membersound