Android Tips之自定义菜单

Android Tips之自定义菜单Android Tips 之自定义菜单 Android 中不能直接通过继承 Menu 实现任意样式的菜单 一般通过弹出窗或者对话框实现 个人认为用对话框实现更加合理 因为一旦你触摸屏幕中非对话框区域 对话框会消失 这与我们的选项菜单的设计是相同的

大家好,欢迎来到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方法 @Override

    public boolean onMenuOpened(int featureId, Menu menu) {

    //显示对话框

    menuDialog.show();

    return false;

    }

这样就实现了自定义菜单,我们来看看效果吧。

Android Tips之自定义菜单

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/159359.html

(0)
上一篇 2024-11-29 17:26
下一篇 2024-11-29 17:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信