做项目的时候,出现了一个很奇怪的bug,autosize适配的项目正常使用一切正常,但是在项目横屏页面锁屏之后,重新打开,就会出现适配异常的问题,原本以为是声明周期的问题,修改之后还是不行,一步步往下追查后发现,锁屏前的宽度和锁屏后的宽度不一致。
分析 一下原因,横屏页面锁屏后是有一个短暂的竖屏然后自己旋转的,那么autosize这个框架拿到的就是竖屏时候的宽高,那肯定出现适配问题啊,所以需要我们手动重新设置一下适配。
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
AutoSize.autoConvertDensityOfGlobal(this);
}
}
AutoSize.autoConvertDensityOfGlobal(this)是普通情况下,autoConvertDensity一系列的方法需要自行根据项目修改。