大家好,欢迎来到IT知识分享网。
Android Tips之自定义菜单
Android中不能直接通过继承Menu实现任意样式的菜单。
一般通过弹出窗或者对话框实现,个人认为用对话框实现更加合理,因为一旦你触摸屏幕中非对话框区域,对话框会消失,这与我们的选项菜单的设计是相同的。
实际上我们不用设置菜单,直接使用对话框,当点击“菜单”键的时候显示对话框或者让对对话框消失,就像我们在操作选项菜单一样。
代码很简单:
- 首先配置对话框相关设置(显示的位置,显示的视图,KeyListener) //对话框中显示的视图
View view = LayoutInflater.from(this).inflate(R.layout.custom_menu,null);
menuDialog = new AlertDialog.Builder(this).create();
Window mWindow = menuDialog.getWindow();
WindowManager.LayoutParams lp = mWindow.getAttributes();
lp.x = 0; //新位置X坐标
lp.y = 300; //新位置Y坐标
//设置menuDialog显示的位置
menuDialog.onWindowAttributesChanged(lp);
//设置对话框中显示的视图
menuDialog.setView(view);
menuDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
//当对话框显示时,抬起“Menu”键时
if (keyCode == KeyEvent.KEYCODE_MENU&&event.getAction()==KeyEvent.ACTION_UP)
menuDialog.dismiss();
return false;
}
});
- 其次,重写Activity中的
onMenuOpened
方法 @Overridepublic boolean onMenuOpened(int featureId, Menu menu) {
//显示对话框
menuDialog.show();
return false;
}
这样就实现了自定义菜单,我们来看看效果吧。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/159359.html