美文网首页
微信右上角的菜单(PopupWindow)

微信右上角的菜单(PopupWindow)

作者: Yue_Q | 来源:发表于2018-10-10 18:23 被阅读0次

一. 实例说明

image.png

二. 关键技术

  主要使用 PopupWindow 类的构造方法,View.OnTouchListener 接口中的 OnTouch事件,实现以上效果。

 private void OnMenu() {
        //获取自定义的菜单布局文件
        final View popuWindow_view = getLayoutInflater().inflate(R.layout.menu, null, false);
        //创建popupWindow实例,设置菜单宽度与高度为包裹自身
        popupWindow = new PopupWindow(popuWindow_view, ActionBar.LayoutParams.WRAP_CONTENT,
                ActionBar.LayoutParams.WRAP_CONTENT, true);
        //设置菜单显示在按钮上面
        popupWindow.showAsDropDown(button,0,0);
        //单击其他地方消失
        popuWindow_view.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                //如果菜单存在并且为显示状态,就关闭菜单并初始化
                if(popupWindow !=null && popupWindow.isShowing()){
                    popupWindow.dismiss();
                    popupWindow = null;
                }
                return false;
            }
        });
    }

三. github

https://github.com/Frioa/My200Application/tree/master/WeixinMenu

相关文章

网友评论

      本文标题:微信右上角的菜单(PopupWindow)

      本文链接:https://www.haomeiwen.com/subject/bcdmaftx.html