Android 在弹出窗口后面的活动中启用用户输入(自定义对话框)

Android 在弹出窗口后面的活动中启用用户输入(自定义对话框),android,android-activity,dialog,Android,Android Activity,Dialog,我在“活动”上方创建了一个自定义搜索对话框,并根据输入的文本更新结果,但“活动”不响应用户触摸,因为搜索对话框仍显示在屏幕上 我认为由于对话,活动无法获得用户触摸事件。。那么,有没有一种方法可以让用户触摸相同的内容 谢谢……对话框是作为一个透明的活动实现的,带有对话框主题,所以不要试图获取后台屏幕的处理程序。取而代之的是用一个视图替换对话框,并显示可见/不可见/消失的视图的可视性,这有一些有用的窗口标志 WindowManager.LayoutParams.FLAG_NOT_touch和/或FL

我在“活动”上方创建了一个自定义搜索对话框,并根据输入的文本更新结果,但“活动”不响应用户触摸,因为搜索对话框仍显示在屏幕上

我认为由于对话,活动无法获得用户触摸事件。。那么,有没有一种方法可以让用户触摸相同的内容


谢谢……

对话框是作为一个透明的活动实现的,带有对话框主题,所以不要试图获取后台屏幕的处理程序。取而代之的是用一个视图替换对话框,并显示可见/不可见/消失的视图的可视性,这有一些有用的
窗口
标志

WindowManager.LayoutParams.FLAG_NOT_touch
和/或
FLAG_NOT_FOCUSABLE
对于像我这样的罕见情况-弹出窗口中没有触摸

WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
允许在对话框后面和对话框中进行触摸


您可以使用
dialog.window.addFlags(..)
dialog.window.setFlags(..)
设置这些参数。(这是Kotlin语法)

实际上,我试图从我的类的dispatchTouch调用backActivity.dispatchTouchEvent(),该类扩展了dialog并对其进行了处理,效果很好。@Sandstar:您能再解释一下吗?@BugsHappen它的意思是,创建自定义dialog类,在dialog及其内部重写dispatchTouch(),只需调用activities backActivity.dispatchTouchEvent()。这样,来自对话框的触摸将被传输到活动。