我創建了一個自定義菜單欄。沒有什麼複雜的只是一個LinearLayout,它擁有六個ImageButtons,因爲默認的Android標題菜單對我的應用來說太不一致了。由於不一致,我的意思是顯示在頂部的按鈕數量因設備而異。 要隱藏我設置styles.xmlFEATURE_NO_TITLE也刪除菜單
<style name="AppTheme" parent="AppBaseTheme">
<item name="android:windowNoTitle">true</item>
</style>
以下在我menu.xml文件我還設置了「showAsAction」參數爲「從不」
<item
android:id="@+id/menu_settings"
android:showAsAction="never"
android:title="@string/my_menu_settings"/>
一切正常了Android標題欄。我測試我的應用程序上: - 華碩TF300變壓器 - 三星Galaxy Note 2 - 三星Galaxy S 3個 - LG擎天柱4倍高清P880 - 三星Galaxy王牌 - 多模擬器 - 更多一些......
但今天,我在我所有新的索尼Xperia Z1上測試了我的應用程序。 有問題,當我點擊菜單按鈕(三個默認的安卓按鈕之一 - >返回,主頁和菜單),菜單不顯示。 設備返回到應用程序列表。沒有菜單打開!我的問題是: 我的方法有什麼不對嗎? 我只是notized我的Xperia Z該行爲,但我不知道是否有一些完全錯誤的在我的代碼,有很多影響更多的設備......
更新: 我試圖重寫:和的onkeyup onkeydown事件,但這些方法不被調用。我的onCreateOptionsMenu中的斷點也沒有命中。
也許「不一致」是錯誤的詞。這聽起來有點消極。我不想責怪這個設計,我知道它是以支持多種屏幕尺寸的方式實現的,並且如果有空間的話,只能將標題放在標題上。 但是,我的菜單中有一個向前和向後的按鈕,如果向前按鈕位於最上方而向後按鈕位於最下面的菜單中,對用戶來說非常不方便... 您能指點我一些遊戲如何實現遊戲這個? 我更新了我的帖子,並試圖捕獲keydown/keyup事件,但這不叫。 – stefan
@stefan:「但是,我的菜單中有一個前進和後退按鈕,如果前進按鈕位於頂部,後退按鈕位於底部菜單中,對用戶來說非常不方便」 - 然後將它們設置爲'android:showAsAction =「always」',並允許其他項目在需要時進入溢出。 「你能指點我一些遊戲如何實現它的資源嗎?」 - AFAIK,內置於各種遊戲引擎中。 「我更新了我的帖子,並試圖捕獲keydown/keyup事件,但這不叫」 - 這不會幫助,因爲不是所有的設備都有一個菜單鍵。 – CommonsWare
android:showAsAction =「always」不保證顯示兩個按鈕。如果一個按鈕只有足夠的空間,另一個按鈕仍然會放到正常的菜單中。 因此,我似乎必須將某種觸發器放到我的自定義菜單欄中,但這會破壞我的設計 有沒有辦法檢測設備是否有菜單按鈕?所以我可以只顯示特定設備的這個按鈕。 – stefan