3

デバイスの回転時にアクティビティが回転しないようにします。使用する

android:screenOrientation="nosensor"

向きの変更を無効にしますが、注意点が 1 つあります。アクティビティが縦向きモードに切り替わります。現在の向きを維持したいだけです(たとえば、アクティビティが開始されたときに画面が横向きだった場合、デバイスが回転しても横向きのままです)。これは、「nosensor」が行っているように見えることではありません。「ポートレート」とまったく同じ動作のようです。私はそれを間違って使用していますか?

を使用してみましsetRequestedOrientation( getRequestedOrientation )たが、現在要求されている方向が定義されていない場合、アクティビティは回転します。効果的な画面回転を「ロック」したいだけです。

4

1 に答える 1

3

できることは、向きの構成の変更を自分で処理することを Android に伝えることです。orientationタグのandroid: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 に答える