我正在一个项目中工作,当用户选择图像时,它会打开一个带有图像的对话框。现在由于要求我必须在对话框外部触摸时关闭对话框,所以我设置了dialog.setCanceledOnTouchOutside(true)
. 但是另一个要求是,一旦用户触摸到对话框的一侧,我就应该更改页面,所以我试图找出如何做到这一点。但我都试过了onCancelListener
和onDismissListener
。当我们使用它们时,它们都不会被调用dialog.setCanceledOnTouchOutside(true)
。取消对话框。
问问题
1515 次
2 回答
3
如果您使用的是DialogFragment
类,只需覆盖其onCancel()
方法:
@Override public void onCancel(DialogInterface dialog) {
super.onCancel(dialog);
...
}
于 2013-04-25T08:41:39.433 回答
0
据我了解,您无法使用 setCanceledOnTouchOutside 添加额外的处理作为替代方案,您可以使用 MotionEvent.ACTION_OUTSIDE 覆盖您的 onTouchEvent 以在他们触摸框外时执行操作,就像这样
public boolean onTouchEvent(MotionEvent event)
{
if(event.getAction() == MotionEvent.ACTION_OUTSIDE){
doStuff();
this.dismiss();
}
return false;
}
于 2013-02-26T15:56:42.480 回答