如何通过单击对话框外部来关闭对话框?我为我的应用程序实现了一个自定义对话框。我想实现当用户在对话框外单击时,对话框将被取消。我该怎么做?
3 回答

牧羊人nacy
TA贡献1862条经验 获得超7个赞
如果dialog.setCanceledOnTouchOutside(true);
在对话框外触摸,可以使用哪个将关闭对话框。
就像是,
Dialog dialog = new Dialog(context) dialog.setCanceledOnTouchOutside(true);
或者如果您的对话在非模型中,那么,
1 - FLAG_NOT_TOUCH_MODAL
为对话框的窗口属性设置标志
Window window = this.getWindow();window.setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
2 - 向Windows属性添加另一个标志,FLAG_WATCH_OUTSIDE_TOUCH
- 这个用于对话框以在其可见区域之外接收触摸事件。
3 - 覆盖onTouchEvent()
对话框并检查操作类型。如果动作类型是' MotionEvent.ACTION_OUTSIDE
'表示,则用户正在对话区域外进行交互。因此,在这种情况下,您可以减少对话框或决定要执行的操作。查看plainprint?
public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_OUTSIDE){ System.out.println("TOuch outside the dialog ******************** "); this.dismiss(); } return false; }
有关更多信息,请参阅如何根据触摸点关闭自定义对话框?当触摸外部对话区域时, 如何关闭非模态对话框
- 3 回答
- 0 关注
- 501 浏览
添加回答
举报
0/150
提交
取消