我们设置点击Dialog以外的区域时Dialog消失的设置如下:
dialog.setCanceledOnTouchOutside(true);
首先看Dialog的 setCanceledOnTouchOutside(true)的方法里究竟是什么代码,点击进入Dialog的源码可以看到方法
public void setCanceledOnTouchOutside(boolean cancel) {
if (cancel && !mCancelable) {
mCancelable = true;
}
mWindow.setCloseOnTouchOutside(cancel);
}
以上代码中的mCancelable变量就是我们Dialog另外一个设置是否可消失的方法中设置的.
dialog.setCancelable(true);
接着我们继续看关键代码mWindow.setCloseOnTouchOutside(cancel)