在弹出窗口后面的活动中启用用户输入(自定义对话框)
我在活动上方创建了一个自定义搜索对话框,并根据输入的文本更新结果,但随后该活动不会响应用户触摸,因为搜索对话框仍然存在于屏幕上。
我认为由于对话框的原因,活动无法获取用户触摸事件。那么有没有办法启用用户触摸呢?
谢谢...
I created a custom search dialog above my activity and I update the result based on entered text, but then the activity doesn't respond to user touch as search dialog is still present on the screen.
I think due to dialog, activity is not able to get user touch event.. so is there a way to enable user touch for the same?
Thanks...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对话框是作为具有对话框主题的透明活动实现的,因此不要尝试获取后屏幕的处理程序。而是用视图替换对话框,并改变视图 VISIBLE/INVISIBLE/GONE 的可见性
Dialog is implemented as a transparent activity with Dialog theme ,so dont try to get handlers of back screen . instead replace dialog by a view and shitch visibilities of Views VISIBLE/INVISIBLE/GONE
对于像我这样的罕见情况,有一些有用的
Window
标志用于此WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
和/或FLAG_NOT_FOCUSABLE
- 弹出窗口中没有触摸< code>WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL 允许触摸后面以及在对话框中
您可以使用以下命令设置这些
dialog.window.addFlags(..)
或者,如果您知道自己在做什么,则dialog.window.setFlags(..)
。 (这是 Kotlin 语法)There are some useful
Window
flags for thisWindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
and/orFLAG_NOT_FOCUSABLE
for rare cases like mine - no touches in the popupWindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
to allow touch behind and also in the dialogYou would set these using
dialog.window.addFlags(..)
or, if you know what you're doing,dialog.window.setFlags(..)
. (THis is Kotlin syntax)