Nexus的顯示屏幕如下:(這裏我按在右上角的3點到下拉菜單)覆蓋菜單按鈕動作
我有一個菜單出現在屏幕右上角。 手機顯示菜單如下(這隻有當我按下手機上的菜單按鈕時發生):
我想在手機相同的菜單行爲在平板電腦,其中,在我可以在屏幕右上角顯示菜單。我的問題是,是否有任何方法可以覆蓋菜單充氣行爲 - 即使在手機中也必須從屏幕的右上角位置顯示菜單
Nexus的顯示屏幕如下:(這裏我按在右上角的3點到下拉菜單)覆蓋菜單按鈕動作
我有一個菜單出現在屏幕右上角。 手機顯示菜單如下(這隻有當我按下手機上的菜單按鈕時發生):
我想在手機相同的菜單行爲在平板電腦,其中,在我可以在屏幕右上角顯示菜單。我的問題是,是否有任何方法可以覆蓋菜單充氣行爲 - 即使在手機中也必須從屏幕的右上角位置顯示菜單
這有點複雜,但在這裏的總體思路是:
public void showPopup(View v) {
PopupMenu popup = new PopupMenu(this, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.layout.menu, popup.getMenu());
popup.show();
}
在這種方法中v
是你希望你的菜單出現的觀點。
您將需要Override
菜單按鈕,以便當用戶按下它時出現菜單。請執行下列操作
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
//Put the code for an action menu from the top here
return true;
}
return super.onKeyDown(keyCode, event);
}
然後其他的都是一樣,因爲它是你的正常菜單(我認爲)
我會建議onKeyUp事件,因爲我已經嘗試onKeyDown,並且一旦釋放我的菜單按鈕,我的PopupMenu消失。 –
你真的不應該與菜單按鈕一塌糊塗。不同的製造商對菜單按鈕有不同的解決方案,如果你開始移動它,用戶將不知道發生了什麼。 – span
此外,在許多電話上,操作欄*將*顯示在右上角。這不是手機與平板電腦的問題,而是該設備是否具有專用的屏幕外MENU按鈕。請通過接受默認行爲來幫助您的用戶,從而遵循其設備上所有其他應用程序所採用的模式。 – CommonsWare
@CommonsWare感謝您的輸入。用戶將如何知道在電話選項中有要選擇的菜單? –