EasyWindow icon indicating copy to clipboard operation
EasyWindow copied to clipboard

[Bug]:反复从竖屏页面切换到横屏页面,在横屏页面偶发不显示EasyWindow的问题!

Open sugar0811 opened this issue 1 year ago • 3 comments

框架版本【必填】

10.6

问题描述【必填】

显示EasyWindow的竖屏A页面切换到同样需要显示EasyWindow横屏的B页面,B页面会偶发不显示EasyWindow问题。

复现步骤【必填】

反复从B切到A,再从A切到B,B不显示EasyWindow,偶发。

是否必现【必填】

项目 targetSdkVersion【必填】

33

出现问题的手机信息【必填】

雷电模拟器 9.0.65

出现问题的安卓版本【必填】

9

问题信息的来源渠道【必填】

自己遇到的

是部分机型还是所有机型都会出现【必答】

部分机型

框架最新的版本是否存在这个问题【必答】

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

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

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

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

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

您好,打扰了,麻烦您帮忙分析下问题:

我的使用代码:
easyWindow = EasyWindow.with(this).apply {
            setContentView(R.layout.layout_phone_play_float_menu)
                // 设置成可拖拽的
                .setDraggable()
                .setGravity(Gravity.RIGHT)
                .setOnClickListener(R.id.icon) { _: EasyWindow<*>, _: View? ->
                    getPhonePlayDialog(this@BasicPhonePlayActivity)?.show()
                }
        }
        easyWindow?.show()

EasyWindow代码排查,问题定位:
从A竖屏切到B横屏页面,通过日志打印发现描述的问题出现时:
当BaseDraggable类onScreenOrientationChange函数执行时,refreshWindowInfo不一定执行了,所以onScreenOrientationChange中的的mCurrentWindowWidth和mCurrentWindowHeight为0,导致percentX和percentY的值为Infinity,最终导致updateLocation(x, y);中的x,y为Int的最大值,坐标过大导致EasyWindow不显示,这是导致EasyWindow在B页面中不显示的主要原因。

其次,还有另一个显示问题,当B页面显示了EasyWindow时,默认位置(右侧垂直居中)偶发性的也会变化,主要原因是mCurrentWindowWidth和mCurrentWindowHeight在横屏的情况下可能获取到的值还是竖屏的,有时候也会是横屏的,所以就是会错乱。

麻烦了~

提供截图或视频

No response

提供解决方案

No response

sugar0811 avatar May 23 '24 09:05 sugar0811

小伙子,第三方模拟器出现的问题,我这里是不受理的,特别是第三方模拟器,你如果确认真机或者原生的模拟器遇到此问题,再联系我。

getActivity avatar May 23 '24 15:05 getActivity

小伙子,第三方模拟器出现的问题,我这里是不受理的,特别是第三方模拟器,你如果确认真机或者原生的模拟器遇到此问题,再联系我。

您好,我用 iqoo 8 pro Android13 机型也复现了此问题,还麻烦您帮忙分析下,指导一下解决方案。

sugar0811 avatar May 24 '24 01:05 sugar0811

这是我截取的问题日志,在没有修改库原始代码的基础上加上日志,希望能协助你定位问题~ 1716516350237

sugar0811 avatar May 24 '24 02:05 sugar0811

image

getActivity avatar May 27 '24 15:05 getActivity

小伙子,你说的 Demo 工程无法复现这个问题,我这边确实测试了无法复现,需要你提供一个可供复现的 Demo 工程给到我。

getActivity avatar May 27 '24 15:05 getActivity

感谢大佬~ 我这边自己处理吧,保证坐标计算时不超出屏幕宽高就行~

sugar0811 avatar May 29 '24 05:05 sugar0811