美文网首页AndroidSpring
Android PopuWindow的简单使用(点击外部消失)

Android PopuWindow的简单使用(点击外部消失)

作者: 王魔王 | 来源:发表于2020-09-10 17:17 被阅读0次

    初始化popuWindow

    PopupWindow popupWindow = new PopupWindow(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
            View inflate = View.inflate(context, R.layout.popu_add_friend, null);
            popupWindow.setFocusable(true);
            popupWindow.setOutsideTouchable(true);
            //必须添加一个背景,任意颜色的背景都可以
            popupWindow.setBackgroundDrawable(new BitmapDrawable());
            popupWindow.setContentView(inflate);
    

    单独说一下这三个属性

    popupWindow.setFocusable(true);
    

    👆这个属性表示popuWindow弹出以后,是否获取焦点,如果设置为true,那么当popuWindow弹出的时候,Activity中的其他控件就无法获取焦点,例如Activity中的按钮不能点击,列表无法滑动...,只有popuWindow可与用户交互

      popupWindow.setOutsideTouchable(true);
    

    👆这个属性表示设置popuwindow外部的区域是否可触摸。
    如果设置为true,那么当点击popuWindow外面区域时,popuWindow会自动消失。设置为false,那么点击那么当点击popuWindow外面区域时,popuWindow不会消失。
    该属性默认为false
    注意👇
    该属性要想生效(即点击popuWindow外部,让popuWindow消失),必须给popuWindow添加一个背景,任意颜色的背景都可以,代码如下👇

    popupWindow.setBackgroundDrawable(new BitmapDrawable());
    

    另外,这个属性强调的是点击popuWindow的外部,如果你的popuWindow很大,例如不小心把popuWindow的宽高指定为了MATCH_PARENT,那么你的触摸区域就会始终在popuWindow的内部,此时无论你怎么点击屏幕,popuWindow都无法自动消失。

    显示popuWindow

    在某个View下面显示popuWindow👇
    popupWindow.showAsDropDown(view);
    这个方法有重载,读者自行测试即可。

    让popuWindow消失👇
    popupWindow.dismiss()

    判断popuWindow是否是显示状态👇
    popupWindow.isShowing()

    给popuWindow设置消失的监听

     popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
                @Override
                public void onDismiss() {
                    
                }
      });
    

    完!

    相关文章

      网友评论

        本文标题:Android PopuWindow的简单使用(点击外部消失)

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