弹出窗口解雇

时间:2013-08-06 18:36:07

标签: android android-layout

我希望得到这个答案,当我点击外面的时候,我已经尝试过忽略弹出窗口,但它没有解雇,有人知道为什么吗?当我点击后退按钮时,它也不会返回。

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();
    }

2 个答案:

答案 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);

现在可以使用