さまざまなコンテンツ (アクティビティ) を持つタブを使用する Android アプリケーションを作成しています。これらのアクティビティの 1 つでは、画面の向きを「横」モードにロックしたいのですが、他のアクティビティでは、通常の向き (センサーによる) にしたいのです。
私が今やっていることは、電話をかけることです
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
横向きモードのアクティビティに切り替えると、
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
他のアクティビティに戻ったとき。しかし、これは機能していないようで、アプリケーション全体がロックします。この問題に対する通常のアプローチは何ですか?
ベストアンサー1
マニフェストでは、screenOrientation を landscape に設定できます。XML では次のようになります。
<activity android:name="MyActivity"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize">
...
</activity>
MyActivity
風景の中に残しておきたいものはどこですか。
このandroid:configChanges=...
行は、画面が回転したときに が呼び出されないようにしますonResume()
。onPause()
この行がない場合、回転は要求どおりに維持されますが、呼び出しは引き続き行われます。
注:およびkeyboardHidden
はorientation
Android 3.2 (API レベル 13) 未満で必須であり、 だけでなく 3 つのオプションすべてが 3.2 以上で必須ですorientation
。