假设我有几个对话框片段,它们是为了响应可以以任何顺序到达的消息和事件而显示的。通常,最后显示的对话框将位于顶部。有没有办法显示对话框片段under是现有的,还是在显示后更改其 z 顺序?
我的应用程序一次显示多个对话框的情况应该很少见,但这种情况也有可能发生。有一个特定的对话框,只要它可见,它就应该始终位于顶部。
对话框创建一个应用程序子窗口。 Android 的窗口管理器(窗口管理服务 https://github.com/android/platform_frameworks_base/blob/master/services/core/java/com/android/server/wm/WindowManagerService.java) 根据窗口的类型自动计算窗口的 z 顺序并将其存储在窗口状态 https://github.com/android/platform_frameworks_base/blob/master/services/core/java/com/android/server/wm/WindowState.java's mLayer
场地。内部 Android 类可以访问此字段并有时更改窗口的 z 顺序,但此 API 未向 Android SDK 公开。因此,影响对话框 z 顺序的唯一方法似乎是重新创建它。
我上面写的所有内容只是对 Android 源代码进行简要调查的结果,所以我可能是错的。也许有一些黑客方法可以使用反射和访问私有字段和方法来完成您想要的事情。但我不确定尝试这样做是否是一个好主意。在我看来,最好只有一个对话框甚至活动,并在其中管理片段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)