3

我希望我的活动在设备转动时不旋转。使用

android:screenOrientation="nosensor"

确实禁用了方向更改,但有一个警告:活动切换到纵向模式。我只希望它保持当前方向(例如,如果在活动开始时屏幕处于横向,那么即使设备旋转也保持横向模式)。这不是“无传感器”似乎在做的事情。它似乎只是与“肖像”完全相同的行为。我用错了吗?

我试过使用setRequestedOrientation( getRequestedOrientation ),但如果当前请求的方向未定义,那么我的活动将旋转。我只想“锁定”有效的屏幕旋转。

4

1 回答 1

3

您可以做的是告诉 Android 您将自行处理方向配置更改。您可以通过指定标签orientationandroid:configChanges属性来做到这一点。activity

<activity android:name=".MyActivity"
          android:configChanges="orientation"
          android:label="@string/app_name">

有关更多信息,请参阅此链接。
http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange

至于为什么nosensor不起作用,是因为它在文档中如下所述。

在不参考物理方向传感器的情况下确定方向。传感器被忽略,因此显示器不会根据用户移动设备的方式旋转。除此区别外,系统使用与“未指定”设置相同的策略选择方向。

以及unspecified文档中的内容

默认值。系统选择方向。它使用的策略以及因此在特定上下文中做出的选择可能因设备而异。

于 2012-12-23T02:37:42.103 回答