一般情况下 popupWindow出来了 用户点击back键的时候会是退出当前界面而不是仅仅关闭 popuoWindow
1: 当且仅当点击back键的时候 popupWindow消失
<pre name="code" class="java"> View view = View.inflate(this , R.layout.dialog_twobutton , null);
PopupWindow popupWindow =new PopupWindow(view, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
popupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
popupWindow.setFocusable(true);//点击窗口其他区域无效
popupWindow.setOutsideTouchable(false);
popupWindow.showAtLocation(findViewById(R.id.im_right), Gravity.NO_GRAVITY, 0, 0);
popupWindow.update();
------------------------------------------------------
View view = View.inflate(context, R.layout.popupwindow_cancel_order,
null);
popupWindow = new PopupWindow();
// 设置PopupWindow的View
// 设置宽高
popupWindow.setWidth(w*2/3);
popupWindow.setHeight(h*2/3);
// 设置弹出窗体可点击(即:获取到焦点)
popupWindow.setFocusable(true);// 点击窗口其他区域无效
// 必须设置背景
popupWindow.setBackgroundDrawable(new BitmapDrawable());
// 设置点击其他地方 就消失 (只设置这个,没有效果)
popupWindow.setOutsideTouchable(false);
popupWindow.setContentView(view);
// 刷新状态
popupWindow.update();
popupWindow.showAtLocation(referenceView, Gravity.CENTER, 0, 0);
如果不设置backGroundDrawable 则点击back键也是无效的
2:基本创建 如上
存在问题:点击窗口其他位置PP不消失 照着网上的方式试了无数次还是不行!
PP显示出来之后如果没做特殊设定 这个时候back按键会是退出当前界面的效果而不是单单取消PP
(
popupWindow.setFocusable(true) 这句话让PP获得焦点 其余部分点击无效
)