这问题是由于activity主题设置了背景透明
<item name="android:windowIsTranslucent">true</item>
然后界面在AndroidManifest或代码里面设置了屏幕方向
android:screenOrientation="portrait"
这是Android8才有的bug。前提,如果你一定要界面透明,有一定想要界面时竖直,下面的办法能解决大部分情况。
方法一:
android:screenOrientation="behind"
界面的屏幕方向设置behind,这个代码界面会跟随上一个界面的方向。除非你上一个界面方向是横屏,或者你要打开的这个界面就是整个app的第一个界面,要不这方法都OK。
方法二:
android:screenOrientation="nosensor"
也许你只是想界面不跟着系统旋转就行,那你可以设置nosensor, 这属性就是:旋转设备时候,界面不会跟着旋转。初始化界面方向由系统控制。
意思即使,你打开这个界面时,你的系统当前是竖屏,界面打开就会是竖屏,横屏即横屏,且界面打开后不会再跟着系统旋转。