FloatingX
FloatingX copied to clipboard
App级别浮窗在多个Activity之间显示和隐藏会有问题
Android SDK Version = v2.0.6 具体操作为: 1.启动APP,在Activity A调用FloatingX.install().show()显示一个浮窗。 2.跳转至Activity B,此时浮窗可以正常显示。 3.返回Activity A,调用FloatingX.control(FLOAT_TAG).hide()隐藏浮窗 4.再次跳转至Activity B,此时浮窗也是处于隐藏状态。 5.然后在Activity B调用FloatingX.control(FLOAT_TAG).show(),这时浮窗无法正常显示,但是返回Activity A时,发现浮窗可以正常显示。
跟踪源代码发现,错误是发生在这一步:
在Activity B中的containerGroupView依旧是Activity A的DecorView,所以实际是添加在Activity A上显示,而B页面无法及时显示。
Android SDK Version = v2.0.6 具体操作为: 1.启动APP,在Activity A调用FloatingX.install().show()显示一个浮窗。 2.跳转至Activity B,此时浮窗可以正常显示。 3.返回Activity A,调用FloatingX.control(FLOAT_TAG).hide()隐藏浮窗 4.再次跳转至Activity B,此时浮窗也是处于隐藏状态。 5.然后在Activity B调用FloatingX.control(FLOAT_TAG).show(),这时浮窗无法正常显示,但是返回Activity A时,发现浮窗可以正常显示。
跟踪源代码发现,错误是发生在这一步:
在Activity B中的containerGroupView依旧是Activity A的DecorView,所以实际是添加在Activity A上显示,而B页面无法及时显示。
B Activity - show()展示时机是onResume之前吗,如果是的话那不行,目前浮窗的插入时机监控是在onResume里做的
Android SDK Version = v2.0.6 具体操作为: 1.启动APP,在Activity A调用FloatingX.install().show()显示一个浮窗。 2.跳转至Activity B,此时浮窗可以正常显示。 3.返回Activity A,调用FloatingX.control(FLOAT_TAG).hide()隐藏浮窗 4.再次跳转至Activity B,此时浮窗也是处于隐藏状态。 5.然后在Activity B调用FloatingX.control(FLOAT_TAG).show(),这时浮窗无法正常显示,但是返回Activity A时,发现浮窗可以正常显示。 跟踪源代码发现,错误是发生在这一步:
在Activity B中的containerGroupView依旧是Activity A的DecorView,所以实际是添加在Activity A上显示,而B页面无法及时显示。
B Activity - show()展示时机是onResume之前吗,如果是的话那不行,目前浮窗的插入时机监控是在onResume里做的
是在OnResume中做的
在测试工程Sample app中也可以复现此问题: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入多浮窗页面”->点击“显示全局悬浮窗(tag1)”,此时浮窗1依旧无法显示,仅当返回上一页后才会显示浮窗1
在测试工程Sample app中也可以复现此问题: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入多浮窗页面”->点击“显示全局悬浮窗(tag1)”,此时浮窗1依旧无法显示,仅当返回上一页后才会显示浮窗1
感谢反馈,已修复,请更新到2.0.7即可
在测试工程Sample app中也可以复现此问题: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入多浮窗页面”->点击“显示全局悬浮窗(tag1)”,此时浮窗1依旧无法显示,仅当返回上一页后才会显示浮窗1
感谢反馈,已修复,请更新到2.0.7即可
感谢您的修正,从我的设备上看,上述不显示的问题已经得到修正。不过我又发现一个新的问题(版本2.0.7)。
同样可以在Sample上重现: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入黑名单页面”->点击“显示全局悬浮窗”。此时悬浮窗不会被显示,没有问题。 4.点击返回键,返回首页。点击“显示全局悬浮窗”,此时悬浮窗无法显示。
根据代码,发现错误原因是在:
此时fxView不知道何时已经呗attach到MainActivity的DecorView中了,所以走不到下一步。
在测试工程Sample app中也可以复现此问题: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入多浮窗页面”->点击“显示全局悬浮窗(tag1)”,此时浮窗1依旧无法显示,仅当返回上一页后才会显示浮窗1
感谢反馈,已修复,请更新到2.0.7即可
感谢您的修正,从我的设备上看,上述不显示的问题已经得到修正。不过我又发现一个新的问题(版本2.0.7)。
同样可以在Sample上重现: 1.针对浮窗1,不给予权限,降级为app层级浮窗。 2.首页点击“隐藏全局悬浮窗”,此时浮窗1被隐藏 3.首页点击“进入测试页面”->点击“进入黑名单页面”->点击“显示全局悬浮窗”。此时悬浮窗不会被显示,没有问题。 4.点击返回键,返回首页。点击“显示全局悬浮窗”,此时悬浮窗无法显示。
根据代码,发现错误原因是在:
此时fxView不知道何时已经呗attach到MainActivity的DecorView中了,所以走不到下一步。
这是一个比较复杂的流程问题,得debug一会,大概知道原因是因为fx的状态监测异常导致
感谢,我个人暂时的解决办法就是修改了show()函数逻辑
感谢,我个人暂时的解决办法就是修改了show()函数逻辑
是的,这里可以兜底,但主要问题原因不是在show()方法,可以先这样处理
感谢,我个人暂时的解决办法就是修改了show()函数逻辑
是的,这里可以兜底,但主要问题原因不是在show()方法,可以先这样处理
抱歉久等了,更新到2.1.0即可修复此问题