为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过单击对话框外部来关闭对话框?

如何通过单击对话框外部来关闭对话框?

皈依舞 2019-08-26 14:12:06
如何通过单击对话框外部来关闭对话框?我为我的应用程序实现了一个自定义对话框。我想实现当用户在对话框外单击时,对话框将被取消。我该怎么做?
查看完整描述

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;  }

有关更多信息,请参阅如何根据触摸点关闭自定义对话框?当触摸外部对话区域时, 如何关闭非模态对话框


查看完整回答
反对 回复 2019-08-26
?
LEATH

TA贡献1936条经验 获得超6个赞

dialog.setCancelable(false);从您的活动/片段中调用。


查看完整回答
反对 回复 2019-08-26
  • 3 回答
  • 0 关注
  • 501 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号