Nexus按如下方式显示屏幕:(在此按下右上角的3个点以下拉菜单)
我的屏幕右上角有一个菜单。 手机显示菜单如下(仅当我按下手机上的菜单按钮时才会发生这种情况):
我想在手机中使用与在平板电脑中相同的菜单行为,我可以在屏幕的右上角显示菜单。我的问题是,有没有办法覆盖菜单膨胀行为,其中菜单必须从屏幕的右上角位置显示,即使在手机中也是如此
答案 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);
}
然后其他所有内容都与普通菜单相同(我认为)