如何在Android Manifest文件中配置支持横竖屏orientation切换
安卓横竖屏支持配置调整方案
1. 修改AndroidManifest.xml强制竖屏配置
你当前配置的android:screenOrientation="portrait"是强制锁定Activity为竖屏的参数,要开启横竖屏切换,直接修改该属性值即可,有两种常用可选值:
- 跟随系统全局方向设置(默认值,和绝大多数应用行为一致):修改为
android:screenOrientation="unspecified",如果不需要特殊配置也可以直接删除这行属性,系统默认就是该值 - 忽略系统方向锁定,只要设备物理旋转就切换方向:修改为
android:screenOrientation="sensor"
如果需要避免横竖屏切换时Activity重启,需要给对应Activity补充android:configChanges属性,完整配置示例如下:
<activity android:name=".你要调整的Activity类名" android:screenOrientation="unspecified" android:configChanges="orientation|screenSize|keyboardHidden"> <!-- 其余Activity配置保持不变 --> </activity>
2. 横屏布局适配(可选)
如果切换横屏后布局显示错乱,可单独适配横屏布局:
在res目录下新建layout-land文件夹,将横屏版本的布局文件按照和竖屏布局完全相同的文件名放入该文件夹,系统切换方向时会自动加载对应资源。
3. 代码监听方向切换(可选)
如果需要在方向切换时执行自定义逻辑,可在对应Activity中重写onConfigurationChanged方法:
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // 横屏逻辑 if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { // 此处写横屏要执行的操作 } // 竖屏逻辑 else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { // 此处写竖屏要执行的操作 } }
内容的提问来源于stack exchange,提问作者Tintu
相关产品推荐
相关产品推荐

