Android 禁止屏幕旋转

在Android开发中,禁止屏幕旋转是个常见的需求。本文介绍了两种常见方案及其存在的问题:修改AndroidManifest.xml和在代码中动态控制。这两种方法在特定场景下会有UI效果不佳或维护困难的问题。作者分享了一个简单的打包过程修改方案,以解决这一问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 开发中禁止屏幕旋转

我们通常有两种方案

  • 方案一 在AndroidManifest.xml 中设置activity 中的android:screenOrientation 属性值
  • 方案二 在Activity 中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

他们各自都存在些小问题:

方案一中,需要为清单文件每个activity手动添加属性,每次增加新的activity 都需要重新设置,如果是组件化的情况简直就是灾难,更不要说特定的android:screenOrientationactivity了。 在application中的theme似乎可以设置整个applicationandroid:screenOrientation 但是实验结果是没有效果。

方案二中,似乎很完美,只需要在BaseActivity 中写一行代码就好了。但是它有一个严重的问题就是: 当activity 切换时,上一个activity 如果是横屏状态,此时切换对应的Activity 它会首先是横屏状态,然后自动切换为竖直的情况。引出的额外问题不做延伸,仅仅是 UI 效果也不能太让人满意,我发现微信 android 端也有这个情况。(在朋友圈点击查看大图,横屏后在横屏状态返回,此时朋友圈界面会进行一次上面描述的旋转)

所以,如果评审不能通过,那么方案二就不能使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值