美文网首页iOS&Android
android popupWindow 背景遮罩设置最佳方式

android popupWindow 背景遮罩设置最佳方式

作者: XX杰 | 来源:发表于2019-08-19 18:32 被阅读0次

设置popupwindow的高度是 wrap_parent

重写 showAsDropDown 方法,设置window的背景透明度

@Override
    public void showAsDropDown(View anchor) {
        if (activity != null && !activity.isFinishing()) {
            Window dialogWindow = activity.getWindow();
            WindowManager.LayoutParams lp = dialogWindow.getAttributes(); // 获取对话框当前的参数值
            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
            lp.height = WindowManager.LayoutParams.MATCH_PARENT;
            lp.alpha = 0.7f;
            dialogWindow.setAttributes(lp);
        }
        super.showAsDropDown(anchor);
    }

重写 dismiss 方法,恢复window的背景透明度

@Override
    public void dismiss() {
        if (activity != null && !activity.isFinishing()) {
            Window dialogWindow = activity.getWindow();
            WindowManager.LayoutParams lp = dialogWindow.getAttributes(); // 获取对话框当前的参数值
            lp.width = WindowManager.LayoutParams.MATCH_PARENT;
            lp.height = WindowManager.LayoutParams.MATCH_PARENT;
            lp.alpha = 1.0f;
            dialogWindow.setAttributes(lp);
        }

        super.dismiss();
    }

注意 super方法要在 改变透明度的后面
否则会把你的壁纸给 闪出来

相关文章

网友评论

    本文标题:android popupWindow 背景遮罩设置最佳方式

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