繁体   English   中英

外部触摸时弹出窗口消失

[英]Popup window dismiss on outside touch

我已经用谷歌搜索了很多但没有得到答案...

这是我正在尝试做的...

 LayoutInflater inflater = (LayoutInflater)screen.getSystemService(screen.LAYOUT_INFLATER_SERVICE);
                    layout =  inflater.inflate(R.layout.snap_log_viewer,null);

                    AlertDialog.Builder builder = new AlertDialog.Builder(SnapLog_Activity.this);


                    builder.setView(layout);

                    AlertDialog alertDialog = builder.create(); 
 alertDialog.setCancelable(true);
                    alertDialog.setCanceledOnTouchOutside(true);
                    alertDialog.show();

 WindowManager.LayoutParams lp = new WindowManager.LayoutParams();

                    Window window = alertDialog.getWindow();
                    alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
                    lp.copyFrom(window.getAttributes());

                    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
                    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
                    window.setAttributes(lp);

并想在外面触摸时解散...

试着

setBackgroundDrawable(new BitmapDrawable());
setOutsideTouchable(true);

但没有产出

您不应该添加标志,并且在构建alertDialog之后弄乱它们的构建方式。 如何尝试所有这些:

AlertDialog alertDialog = new AlertDialog.Builder(**CURRENTACTIVITY**.this).create();
alertDialog.setTitle(getString(R.string.titleString));
alertDialog.setMessage(text);
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dlg, int arg1) 
{
dlg.dismiss();
}
     });


alertDialog.setCancelable(true);
alertDialog.setCanceledOnTouchOutside(true);
alertDialog.show();
            return;

            }
        });

在显示前将cancelable设置为true。

alertDialog.setCancelable(true);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM