定时非模式对话框
有没有什么方法可以显示无模式对话框——该对话框允许用户与对话框之前屏幕上的任何内容进行交互,但也允许用户在按下时与对话框进行交互?
我知道 Toast,但它们不允许与弹出窗口交互。
我知道对话框,但它们是模态的,不允许与背景交互。
我知道通知,但我想要一些在屏幕上可见的东西。
我基本上希望能够玩游戏或其他东西,然后会弹出一个窗口,显示我有一封新电子邮件或其他东西。我可以单击它来查看我的电子邮件,但如果我只想继续玩游戏,我可以等待它消失。这在 Android 中可能吗?
Is there any way to show a modeless dialog--a dialog that allows the user to interact with whatever was on the screen before the dialog but also allows the user to interact with the dialog if pressed?
I know of Toasts, but they don't allow interaction with the popup.
I know of Dialogs, but they're modal and don't allow interaction with the background.
I know of Notifications, but I want something that is visibile on screen.
I basically want to be able to be playing a game or something and a popup appears that I have a new email or something. I can click it to view my email, but I can wait for it to go away if I just want to continue playing my game. Is this possible in Android?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,创建一个样式为
Theme.Dialog
的 Activity。这是一个正常的活动,看起来像一个对话框,但它是无模式的并接受事件。一个例子:
编辑:
确实
Theme.Dialog
模糊了底层活动并使其无法访问。我在这里有类似的要求,我必须显示带有文本和取消按钮的上传进度对话框。主要的问题在于设置 WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL 和重置 WindowManager.LayoutParams.FLAG_DIM_BEHIND 。创建了一个包含自定义内容的对话框:
这是该对话框的布局:
Yes, create an Activity with style
Theme.Dialog
. This is a normal activity which looks like a dialog, while being modeless and accepting events.An example:
Edited:
Indeed
Theme.Dialog
blurs the underlying activity and makes it unaccessible. I had a similar requirement here I had to show upload progress dialog with text and cancel button. The main catch is in settingWindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
and resettingWindowManager.LayoutParams.FLAG_DIM_BEHIND
.Created a Dialog with custom content:
And this is the layout for this Dialog:
只需将 FLAG_NOT_TOUCH_MODAL 标志添加到您的对话框中
just add FLAG_NOT_TOUCH_MODAL flag to your dialog
我的实现有点黑客化,但也允许后台窗口捕获按钮按下的情况
My implementation which was a little more hackish but also allows button presses to be caught by background window