Android 8.0跳坑之'Only fullscreen opaque activities can request orientation'

1,了解问题是什么,

'Only fullscreen opaque activities can request orientation'

翻译:只有全屏不透明的activity可以设置orientation

可以看出问题不出在代码上,而是在样式设计中,

2,先确认自己是不是用的Android8.0版本(楼主只想说只在8.0遇到过这个问题,还是遇到了三次,都不长记性的那种)

3,在AndroidManifast文件中找到相关的Activity类的注册,如果有android:screenOrientation='portrait'啥的麻烦删掉

4,在style文件中找<item name="android:windowIsTranslucent">true</item>,然后把true改成false

或者使用反射来解决这个问题

if (Build.VERSION.SDK_INT >= 26) { convertActivityFromTranslucent(this); } public static void convertActivityFromTranslucent(Activity activity) { try { Method method = Activity.class.getDeclaredMethod("convertFromTranslucent"); method.setAccessible(true); method.invoke(activity); } catch (Throwable t) { } }

猜你喜欢

转载自blog.csdn.net/Mydtudysy/article/details/83791632