我希望得到这个答案,当我点击外面的时候,我已经尝试过忽略弹出窗口,但它没有解雇,有人知道为什么吗?当我点击后退按钮时,它也不会返回。
public void onButtonPopup (View target) {
// Make a View from our XML file
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.samplescreens, (ViewGroup) findViewById(R.id.closeLayout));
pwindo = new PopupWindow(layout, width-40, height-(height/4), true);
pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
pwindo.update();
pwindo.setOutsideTouchable(true);
}
public void onButtonInPopup (View target) {
//back_dim_layout.setVisibility(View.GONE);
pwindo.dismiss();
}
答案 0 :(得分:0)
您的代码中的一个问题是您已编写pwindo = new PopupWindow(layout, width-40, height-(height/4), true);
,其中第四个参数为true
,即保持弹出窗口可对焦。这是错误,就好像你说pwindo.setOutsideTouchable(true);
你已经定义了弹出窗口应该是可聚焦的。将第四个参数设为false
。如果您无法解雇它,那么在解除像pwindo.dismiss()
之类的弹出窗口之前,请写下此行pwindo.setBackgroundDrawable(new BitmapDrawable(getResources()));
。
希望它对你有所帮助。
答案 1 :(得分:0)
终于解决了!更改了订单:
pwindo = new PopupWindow(layout, width-40, height-(height/4), true);
pwindo.setOutsideTouchable(true);
pwindo.setTouchable(true);
pwindo.setBackgroundDrawable(new BitmapDrawable());
pwindo.setTouchInterceptor(customPopUpTouchListenr);
pwindo.showAtLocation(layout, Gravity.CENTER, 0, 0);
现在可以使用