2

私のアプリは縦向きモードと横向きモードの両方で動作するため、すべてのアクティビティのマニフェストに次の構成を入れています。

android:screenOrientation="sensor"
android:configChanges="orientation|keyboardHidden|screenSize"

しかし、横向きモードで向きをロックするオプションもユーザーに提供したいと考えています。onCreateすべてのアクティビティのメソッドに次の行を追加しました。

if (lockLandscape) setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

それは機能しますが、タブレットを縦に持っていると、新しいアクティビティが最初に縦向きモードで開き、すぐに横向きに回転します。ローテーション バックとフォースがあまり見栄えがよくありません.これを修正する方法はありますか? どういうわけかセンサーを無効にしますか?

4

1 に答える 1

1

私はこの同じ問題に遭遇し、次のコードを使用して、新しいアクティビティを表示する前に向きをロックします (そして、そのアクティビティが閉じられたらロックを解除します)。

if (rotationEnabled)
{
    setRequestedOrientation(mSavedOrientation);
}
else
{
    mSavedOrientation = getRequestedOrientation();
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
于 2015-05-30T17:26:23.567 に答える