覆盖菜单按钮操作

时间:2012-12-12 20:28:14

标签: android android-layout android-actionbar actionbarsherlock

Nexus按如下方式显示屏幕:(在此按下右上角的3个点以下拉菜单)

enter image description here

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

enter image description here

我想在手机中使用与在平板电脑中相同的菜单行为,我可以在屏幕的右上角显示菜单。我的问题是,有没有办法覆盖菜单膨胀行为,其中菜单必须从屏幕的右上角位置显示,即使在手机中也是如此

1 个答案:

答案 0 :(得分: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);
}

然后其他所有内容都与普通菜单相同(我认为)