java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
只有只有全屏不透明的activity才可以设置横竖屏方向,半透明/对话框等不可设置横竖屏。
这个是SDK8.0的系统Bug,之后的版本已修复。
解决办法其实很简单:
去掉 android:screenOrientation="portrait"
1、为了横竖屏的切换,添加一个 values-26 的文件夹,存放针对 Android8.0 以上手机的 style.xml。
2、将theme中的android:windowIsTranslucent改为false <item name="android:windowIsTranslucent">false</item>。
3、再加入<item name="android:windowDisablePreview">true</item>就搞定了。
以上,就解决掉进入程序闪退,和横竖屏正常切换的问题了。
但是如果有需求固定横屏或竖屏呢,很简单,在 Java/Kotlin 代码的 onCreate 中设置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
网友评论