JessYan
JessYan
https://github.com/JessYanCoding/AndroidAutoSize/issues/288 https://github.com/JessYanCoding/AndroidAutoSize/issues/134
https://github.com/JessYanCoding/AndroidAutoSize/issues/188 暂时没有其他方案
进入前台时,重设 Density,刷新 UI
https://github.com/JessYanCoding/AndroidAutoSize/blob/master/autosize/src/main/java/me/jessyan/autosize/AutoSizeCompat.java#L137
compose 没用过,不是很懂,如果是系统 Dialog,参考这里 #1,如果是自己写的 Dialog,可能是尺寸没设置正确,试试使用 AutoSizeUtils.dp2px 传入一个经过计算的 PX
https://github.com/JessYanCoding/AndroidAutoSize/blob/master/demo/src/main/java/me/jessyan/autosize/demo/BaseApplication.java#L84 按照你的逻辑,自己改下屏幕的高宽
你就屏幕旋转完,设置好正确的屏幕尺寸在绘制ui。
上面说的所有问题,都是在 UI 显示之前,density未能正确切换成期望的值,导致适配失效,框架只会在 Activity setContentview 之前,重新计算并且设置 density,其他所有的未知的业务流程,都需要你自己在 UI 显示之前重新计算并设置一个你期望的 density,比如上面所说进入后台后,再回到前台,App 会在什么时候回到前台,框架并不知道,而 density 是整个进程公有的,所以在回到前台前并不保证它的值没被其他代码所修改,所以这里需要你自己去设置一个正确的值,再刷新 UI。 所有原理包括出现问题的原因,都在 [这里](https://github.com/JessYanCoding/AndroidAutoSize/issues/13) 讲的很清楚。
https://github.com/JessYanCoding/AndroidAutoSize/issues/13
试试覆盖 getResources 返回一个经过代理的 Resources 对象给 View对象,让 View 中拿到的 mMetrics 对象和 setDensity 的 mMetrics 对象是用一个 https://github.com/JessYanCoding/AndroidAutoSize/issues/1#issuecomment-504654664