4

Nexus显示屏幕如下:(这里我按右上角的3个点下拉菜单)

在此处输入图像描述

我有一个菜单出现在屏幕的右上角。手机显示菜单如下(仅当我按下手机上的菜单按钮时才会发生这种情况):

在此处输入图像描述

我希望手机中的菜单行为与平板电脑中的相同——我可以在屏幕右上角显示菜单。我的问题是,有什么方法可以覆盖菜单膨胀行为,即使在手机中,菜单也必须从屏幕的右上角显示

4

1 回答 1

5

这有点复杂,但这里是一般的想法:

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);
}

然后其他一切都与您的普通菜单相同(我认为)

于 2012-12-12T22:25:00.297 回答