今天拿了同事的华为 P10 8.0系统装了一下在开发的应用,正想炫耀一下功能的时候,打开个Activity的时候突然崩溃,内心阴影面积无穷大,报错如下:
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
随便百度了一下,原来是8.0系统适配的一个问题,主要原因是:是我们给Activity同时设置了 android:screenOrientation="" 和 <item name="android:windowIsTranslucent">true</item>。
Activity属性:
<activity
android:name=".activity.ImagePreviewActivity"
android:screenOrientation="portrait"
android:theme="@style/NoTitleTranslucentTheme" />
NoTitleTranslucentTheme的样式:
<!--透明,有任务栏电量时间等-->
<style name="NoTitleTranslucentTheme" parent="AppTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
</style>
简单粗暴的解决办法:删除AndroidManifest中相应Activity的 android:screenOrientation=""属性;或者删除相应Activity的theme中<item name="android:windowIsTranslucent">true</item>属性。
本人果断选择删除了screenOrientation属性。。。。(以作记录..)