getActivity / EasyWindow

Android 悬浮窗框架,好用不解释
Apache License 2.0
1.46k stars 162 forks source link

[疑惑]:实现不需要权限的全局悬浮窗,显示在Dialog上 #53

Closed gaoyl87 closed 8 months ago

gaoyl87 commented 9 months ago

问题描述【必填】

现在的框架在Activity中显示没有问题。 我有一个面积很大的Dialog,宽度=屏幕宽,高度=屏幕高的一半,显示在屏幕正中。 现在悬浮窗只能显示在Dialog下面的Activity上,我想在Dialog上也能显示悬浮窗。并且在关闭这个dialog后,在其他Activity上也保留悬浮窗,请问有没有什么解决办法?

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

getActivity commented 8 months ago

小伙子,今天是我轮询 issue 评论区的时候,很抱歉,我现在才看到你的 issue。

getActivity commented 8 months ago

解决这个问题的方案有如下几种方案,可以根据你的需求来选择:

  1. 给 EasyWindow 设置 setWindowType,设置成 WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY 类型,代表悬浮窗全局显示,当然你可以直接在创建 EasyWindow 对象的时候,传入 Application 上下文,这样框架内部会自动将悬浮窗处理成全局显示,但是有一个前提条件,就是要有悬浮窗的权限情况下,才能让悬浮窗全局显示。
  2. 经过测试得出的结论,同一优先级的弹窗,先显示的弹窗,会被后显示的弹窗覆盖在上面,你可以通过修改窗口的显示顺序来达到 EasyWindow 显示在 Dialog 上面,解决的方案,是你显示 Dialog,然后再显示 EasyWindow,如果你的 EasyWindow 已经显示的情况下, 可以先进行隐藏,等 Dialog 显示出来了,再去显示 EasyWindow。