横竖屏属性设置screenOrientation那些事

本文分享了在Android开发中遇到的屏幕方向锁定问题及解决方案。作者最初在项目中固定了所有页面为横屏模式,但后来需要部分页面支持竖屏。通过在Activity中重写setRequestedOrientation方法并留空,成功解决了screenOrientation属性失效的问题。

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

最近的项目都是一些平板项目,因此我把每个页面都是写死了方向

android:screenOrientation="landscape"

不过,后来老板又提出一些页面最好可以竖屏显示,这样免不了就要在写一套布局,这都不是事,本来很简单的一件事,结果把我整郁闷了,screenOrientation 这个属性失效了,结果百度了一大堆方案,怎么着都不行,最后在简书上发现了解决方案

在activity中重写屏幕旋转的方法,里面什么都不写就ok了

public void setRequestedOrientation(int requestedOrientation){
return;
}

这个方案我始终也不明白,但是确实很好用,为了避免自己忘记,还是记录一下

 

顺便也复习一下screenOrientation的一下属性值吧

"unspecified"

- 默认值. 由系统选择显示方向. 在不同的设备可能会有所不同.

"landscape"
- 横向

"portrait"
- 纵向

"user"
- 用用户当前的首选方向

"behind"
- 与在活动堆栈下的活动相同方向

"sensor"
- 根据物理方向传感器确定方向. 取决于用户手持的方向, 当用户转动设备, 它跟随改变

"nosensor"
- 不经物理方向传感器确定方向. 该传感器被忽略, 所以當用户转动设备, 显示不會跟随改变. 除了这个区别,系统选择使用相同的政策取向对于“未指定”设置. 系统根据“未指定”("unspecified")设定选择相同显示方向.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值