我们都知道Android 横屏有两种配置方式: 一种是在AndroidManifest.xml上写
android:screenOrientation="landscape"
另一种是在activity的java文件上写
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
本来2种是等价的,今天遇到了写setRequestedOrientation为横屏时app闪退,也没有明显的报错信息,但直接在AndroidManifest.xml写是没问题的;配置横屏时候才有这个问题。
解决方式就是 在activity的java文件配置
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
然后还要在AndroidManifest.xml上配置
android:configChanges="orientation"
原来如此!
附上各个属性值: unspecified:默认值,由系统和手机型号决定 user:用户当前首选的方向 portrait:强制竖屏 landscape:强制横屏 sensorPortrait:基于设备传感器,竖屏旋转 sensorLandscape:基于设备传感器,横屏旋转,一般横屏游戏会设置 behind:与前一个activity方向相同 sensor:显示的方向是由设备的方向传感器来决定的 fullSensor:显示的方向(4个方向)是由设备的方向传感器来决定的 nosensor:旋转设备时候,界面不会跟着旋转 reverseLandscape:与正常的横向方向相反显示 reversePortrait:与正常的纵向方向相反显示
参考: https://www.jianshu.com/p/6cef94e69787 https://blog.csdn.net/u010403463/article/details/47126469/
|