起因
做8.0适配的时候,发现8.0上不能同时开启windowsIsTranslucent和固定屏幕方向,所以在BaseActivity中将设有半透明属性的Activity取消固定屏幕方向。
解决方案
1.加入版本判断,取消屏幕固定
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) {
requestionOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
}
2.获取半透明属性
由于我并没有找到半透明相关的接口(如果有人知道的话请告诉我一下),所以在加载Window相关类中寻找解析theme的部分,最终在PhoneWindow.java中找到了mIsTransparent字段。
mIsTranslucent = a.getBoolean(R.styleable.Window_windowIsTranslucent