如何通过单击对话框外部来关闭对话框?我为我的应用程序实现了一个自定义对话框。我想实现当用户在对话框外单击时,对话框将被取消。我该怎么做?
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 关注
- 609 浏览
添加回答
举报
0/150
提交
取消
