2012-03-06 67 views
6

隨着我正在開發的遊戲,當按下菜單按鈕時,彈出一個遊戲內菜單。不過,我最近發現Android的新版本沒有Menu按鈕,而是一個Action Bar。如何處理操作欄和菜單按鈕?

要注意,我沒有使用一個實際的Android的菜單。我所做的只是檢測菜單按鈕被按下,然後在遊戲中處理事件。這意味着我需要的是用戶可以按下的東西,並檢測到它被按下。

所以我的問題是,我怎麼能同時支持菜單按鈕和更新的操作欄?我希望我的應用程序支持7級目前的API級別。

UPDATE

好了,看完後that article,我想改一下我的問題。它表示它「添加了系統導航旁邊的動作溢出按鈕。」我的清單有android:minSdkVersion =「7」android:targetSdkVersion =「13」但我的模擬器上沒有溢出按鈕。模擬器是API 14與皮膚WSVGA

+0

小心現在,越來越多的設備不再有菜單按鈕了。 – SteeveDroz 2013-06-04 08:48:01

+0

使用操作欄(使用actionbar compact)然後重寫onKeyDown並檢查keyCode == KeyEvent。KEYCODE_MENU' – sherpya 2014-03-12 00:19:21

回答

3

This post in the Android Developers blog對從舊的菜單按鈕到使用新的AC的設計過渡有很好的討論吧動作溢出名單。

它還包括一些具體的建議如何從前期11級過渡到新的操作欄時處理你的代碼。可能對您有所幫助,但對於您的特定應用程序,您需要決定是否要顯示操作欄。如果沒有,那麼你可能需要在你的遊戲界面上添加一個按鈕,以便在具有該按鈕的設備上覆制菜單按鈕的功能。

+2

好吧,讀取文章後,我想改一下我的問題。它表示它「添加了系統導航旁邊的動作溢出按鈕。」我的清單具有'安卓的minSdkVersion =「7」機器人:targetSdkVersion =「13」'但沒有溢出按鈕會出現在我的模擬器。仿真器是具有皮膚WSVGA的API 14。 – 2012-03-09 23:39:18

+1

@JesseJ啊,我有相同的問題。 – HRJ 2012-03-13 04:06:10

+0

你在哪裏尋找動作溢出按鈕?在級別「13」上我相信它會出現在系統導航的右側(在屏幕的底部而不是在操作欄上)。嘗試定位級別「14」。你應該在操作欄上獲得它。另外,聽起來你並不是真的想要動作欄出現。 – PaulP 2012-03-15 01:31:27

2

的Android的新版本確實有菜單按鈕(見下文報價)。我認爲你最好的選擇就是隱藏操作欄,並讓你的遊戲使用菜單按鈕,就像在舊的Android版本上一樣。

Android 4.0 Compatibility Definition

7.2.3引用。導航鍵 主頁,菜單和返回功能對於Android導航範例非常重要。運行應用程序時

設備實現必須隨時提供給用戶這些功能。這些功能可以通過專用物理按鈕(例如機械或電容式觸摸按鈕)來實現,或者可以使用專用軟件按鍵,手勢,觸摸板等實現.Android 4.0支持這兩種實現。

和:

設備實現必須呈現菜單鍵的應用程序時 targetSdkVersion < = 10和應該不存在菜單鍵時 targetSdkVersion> 10.

+0

我的程序會通過'onKeyDown'菜單按鈕。如果沒有物理菜單按鈕,我該如何使它工作?如果沒有菜單按鈕,我該如何顯示菜單按鈕? – 2012-03-08 01:37:08

+0

那麼,如果當你按下它的軟菜單按鈕不會產生onkeydown事件,我不know.Do你有,你可以測試這個在物理設備? – 2012-03-09 07:43:58

+2

我的身體的手機是Android 2.2系統,並且我還沒有看到一個軟菜單按鈕4.0 – 2012-03-09 23:40:42