[英]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.