解决Only fullscreen opaque activities can request orientation错误崩溃

Android O上,如果启动Activity(比如开屏页这种)设置了背景透明,又设置了强制竖屏,就会崩溃,报错:

IllegalStateException: Only fullscreen opaque activities can request orientation...

App秒崩真不是滋味,一开始不知道谷歌粑粑又在搞什么鬼。
查了下,应该是API 27的新规矩:只有占据整个屏幕的 Activity 才可以设置横竖屏,半透明/对话框等不可设置横竖屏
好吧~
解决办法1:
既然不让我设置横竖屏属性,我不设就是了嘛,有时候一些新特性真的让人很无语啊!所以直接删掉manifest文件里开屏Activity的 android:screenOrientation=“portrait” 就行了,相信我,开屏就那么一瞬间,没人会发现它还可以横屏的。
解决办法2:
网上抄来抄去的博客还有个不是办法的办法是,把透明主题的 android:windowIsTranslucent 设成false,再加一句:

<item name="android:windowDisablePreview">trueitem>

我试了下,Activity的背景透明没了,所以这方法对我的情况没用。
其实一般来说,是不建议使用透明Activity的,谷歌都不建议。当然,一般开屏有几秒广告的那种App,也不需要设置透明了,即当成普通Activity处理,强制竖屏也没事。像我这种比较奇葩的情况,确实需求透明首屏,而且就是一瞬间显示的,不强制竖屏也没关系。

你可能感兴趣的:(Android)