【问题标题】:Can't use reverse portrait orientation without "Auto-Rotate Screen" enabled未启用“自动旋转屏幕”时无法使用反向纵向
【发布时间】:2014-06-25 11:11:16
【问题描述】:

我想要做什么

我正在尝试以编程方式将屏幕方向设置为反向纵向。

问题

更改屏幕方向的请求仅适用于反转纵向以外的方向。

我的尝试

  • 启用系统范围的“自动旋转屏幕”设置似乎允许反向纵向模式。但是,我不希望应用要求启用此功能才能正常工作。
  • setOrientation 和使用系统对话框更改方向。无论使用哪种方法都会出现问题。

其他信息

我正在使用 Sony Xperia M (Android 4.1.2) 进行开发。

【问题讨论】:

  • 我今天遇到了这个问题,要让它工作,要么自动旋转需要开启,要么当前处于横向模式。

标签: android android-orientation portrait


【解决方案1】:

您可以在清单文件的 xml 中使用:

android:screenOrientation="reversePortrait"

以编程方式实现类似效果:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT);

更多关于here

另一种方法是将根布局的旋转设置为 180 度。但是它不会旋转操作栏。

android:rotation="180"

【讨论】:

  • 我想以编程方式进行,因此在清单中对其进行硬编码是不合适的。 setRequestedOrientation 不会这样做,除非启用“自动旋转屏幕”。
  • @Sam 更新了我的答案,轮换对你有用吗?我在我的测试它除了操作栏一切正常。
  • 我想要一些可以改变手机方向(包括操作栏)的东西,所以这听起来不适合我的工作。也许我遇到的问题与我手机的固件有关。
  • 屏幕键盘也不会使用旋转方法旋转。除此之外,它可以解决问题。
【解决方案2】:

您应该使用android:screenOrientation="fullSensor" 来启用所有4 个方向的方向,如here 所述

编辑:

关闭“自动旋转”会强制将方向设置为“纵向”模式。如果不使用清单,我不知道有任何解决方法。

如果自动旋转已开启,则将应用程序初始化为“全传感器”模式,然后根据配置更改或屏幕方向更改更改为“反向纵向”,会将您的应用程序旋转到该模式。

【讨论】:

  • The documentation 表示此模式将使用传感器设置屏幕方向,但我希望将其固定为反向纵向模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多