2

我在我的 android 设备上遇到了奇怪的行为。当我单击弹出窗口上的按钮时,会单击基础列表元素。有什么建议么?我尝试了 z-index 方法。

4

1 回答 1

0

这是因为弹出窗口不响应 onTouch 或 onKey 事件,除非它的背景为 != null。

背景不能为空的原因是因为 PopupWindow#preparePopup 中发生的事情。如果它检测到 background != null 它会创建一个 PopupViewContainer 实例并在其上调用 setBackgroundDrawable 并将您的内容视图放入其中。PopupViewContainer 基本上是一个 FrameLayout,它侦听触摸事件和 KeyEvent.KEYCODE_BACK 事件以关闭窗口。如果 background == null,它不会做任何事情,只是使用你的内容视图。作为依赖 PopupWindow 来处理它的替代方法,您可以扩展您的根 ViewGroup 以按照您想要的方式运行。

确保在显示对话框之前调用 setBackgroundDrawable ......我花了一段时间才弄清楚。

我遇到了类似的事情,在这里找到了我需要的答案: Android popup window dismissal

于 2012-11-20T17:16:12.030 回答