//设置popupwindow弹出的绝对位置
mPopupWindow.showAtLocation()
//设置弹出在某个控件的下方
popupWindow.showAsDropDown()
这4句放一块,就能做到,点击外部 view 的时候, pop 消失,并且外部 view 不被响应。
如果要pop 消失,同时外部 view 被响应的话,就去掉mPopupWindow.setFocusable(true);这一句。
// 设置PopupWindow的背景(配合setOutsideTouchable一起使用才能响应点击事件)
mPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
// 设置PopupWindow是否能响应外部点击事件
mPopupWindow.setOutsideTouchable(true);
mPopupWindow.setTouchable(true);
// pop 显示时, 不让外部 view 响应点击事件
mPopupWindow.setFocusable(true);