java android对话框_java - 防止Android活动对话框关闭外部触摸

18个解决方案

327 votes

要防止对话框在按下后退键时被解除,请使用此选项

dialog.setCancelable(false);

并且为防止对话框在外部触摸时被解雇,请使用此功能

dialog.setCanceledOnTouchOutside(false);

Singhak answered 2019-03-28T22:08:28Z

108 votes

你实际拥有的是一个Activity(即使它看起来像一个Dialog),因此如果你想在单击后台活动时保持它打开,你应该从你的活动中调用setFinishOnTouchOutside(false)。

编辑:这仅适用于Android API等级11或更高版本

artex answered 2019-03-28T22:08:59Z

39 votes

对我有用的是创建DialogFragment设置它不可取消:

dialog.setCancelable(false);

Petr answered 2019-03-28T22:09:23Z

31 votes

这可以帮到你。 这是一种处理外部触摸事件的方法:

如何在窗外触摸时取消以Activity为主题的对话框?

通过捕捉事件并无所事事,我认为你可以阻止关闭。 但奇怪的是,当您触摸外部时,活动对话框的默认行为应该不会自行关闭。

(PS:代码使用WindowManager.LayoutParams)

Michel-F. Portzert answered 2019-03-28T22:07:57Z

17 votes

对于更高的API 10࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值